Redis 设计与实现---第九章:数据库持久化
SAVE (服务被阻塞)和 BGSAVE(子进程执行):
BGSAVE时,再次执行SAVE或者BGSAVE会被拒绝,因为存在资源竞争,BGREWRITE会被延迟到BGSAVE执行完成后执行,虽然两者都会fork子进程执行,但是为了避免同时大量磁盘IO所以一个一个来。
数据加载:
Dirty 和lastsave:
Redis发服务周期性操作函数serverCorn默认每隔100毫秒就会执行一次,该函数用于对正在运行的服务器进行维护,它的其中一项工作就是检查save所设置的保存条件是否已经满足,如果满足则执行BGSAVE命令