觸發rdb持久化的方式有2種,分別是手動觸發和自動觸發。
手動觸發
save命令:阻塞當前Redis服務器,直到RDB過程完成為止,對于內存 比較大的實例會造成長時間阻塞,線上環境不建議使用
bgsave命令:Redis進程執行fork操作創建子進程,RDB持久化過程由子 進程負責,完成后自動結束。阻塞只發生在fork階段,一般時間很短
bgsave流程圖如下所示
自動觸發
redis.conf中配置save m n,即在m秒內有n次修改時,自動觸發bgsave生成rdb文件;
主從復制時,從節點要從主節點進行全量復制時也會觸發bgsave操作,生成當時的快照發送到從節點;
執行debug reload命令重新加載redis時也會觸發bgsave操作;
默認情況下執行shutdown命令時,如果沒有開啟aof持久化,那么也會觸發bgsave操作;