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