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