你管這破玩意叫 RDB
本文末有小驚喜
我是個(gè) redis 服務(wù),我馬上就要掛了

停下手頭的工作

不停止手頭的工作

先復(fù)制一份內(nèi)存

寫時(shí)復(fù)制


void rdbSaveBackground() {
// 子進(jìn)程處理(利用了操作系統(tǒng)的寫時(shí)復(fù)制技術(shù))
if ((childpid = fork()) == 0) {
// 落盤主方法
rdbSave();
}
}還沒(méi)定結(jié)構(gòu)呢

# Save the DB on disk:
# In the example below the behaviour will be to save:
# after 900 sec (15 min) if at least 1 key changed
# after 300 sec (5 min) if at least 10 keys changed
# after 60 sec if at least 10000 keys changed
save 900 1
save 300 10
save 60 10000
后記
rdb 持久化過(guò)程,也可以手動(dòng)觸發(fā),即直接輸入 bgsave,同自動(dòng)觸發(fā)完全一樣。
其在 redis 的源碼中,叫做 bgsaveCommand 方法。
整個(gè)源碼非常簡(jiǎn)單易讀,只是干擾項(xiàng)很多罷了。
我將干擾項(xiàng)全部去掉,整理了一份 RDB 源碼簡(jiǎn)潔版,并配上了我魔性的注釋,制作了一份精致的小 pdf。

本來(lái)想著讓大家分享到朋友圈獲取,但想想看算了,加我好友(公眾號(hào)低并發(fā)編程-菜單欄-關(guān)于),即可獲取這個(gè)精致的小 PDF。
評(píng)論
圖片
表情
