Redis 设计与实现---第九章:数据库持久化

SAVE (服务被阻塞)和 BGSAVE(子进程执行):

      BGSAVE时,再次执行SAVE或者BGSAVE会被拒绝,因为存在资源竞争,BGREWRITE会被延迟到BGSAVE执行完成后执行,虽然两者都会fork子进程执行,但是为了避免同时大量磁盘IO所以一个一个来。

 

Redis 设计与实现---第九章:数据库持久化

数据加载:

Redis 设计与实现---第九章:数据库持久化

Dirty 和lastsave:

Redis 设计与实现---第九章:数据库持久化

Redis 设计与实现---第九章:数据库持久化

Redis发服务周期性操作函数serverCorn默认每隔100毫秒就会执行一次,该函数用于对正在运行的服务器进行维护,它的其中一项工作就是检查save所设置的保存条件是否已经满足,如果满足则执行BGSAVE命令