你管这破玩意叫 RDB
本文末有小惊喜
我是个 redis 服务,我马上就要挂了
停下手头的工作
不停止手头的工作
先复制一份内存
写时复制
void rdbSaveBackground() {
// 子进程处理(利用了操作系统的写时复制技术)
if ((childpid = fork()) == 0) {
// 落盘主方法
rdbSave();
}
}
还没定结构呢
# 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 持久化过程,也可以手动触发,即直接输入 bgsave,同自动触发完全一样。
其在 redis 的源码中,叫做 bgsaveCommand 方法。
整个源码非常简单易读,只是干扰项很多罢了。
我将干扰项全部去掉,整理了一份 RDB 源码简洁版,并配上了我魔性的注释,制作了一份精致的小 pdf。
本来想着让大家分享到朋友圈获取,但想想看算了,加我好友(公众号低并发编程-菜单栏-关于),即可获取这个精致的小 PDF。
评论