第10章 RDB持久化
RDB是用来做持久化的二进制压缩文件
10.1 RDB文件的创建与载入
1>SAVE命令阻塞主线程创建。
2>EGSAVE开子线程创建。
3>优先使用AOF进行初始化数据库,否则,使用RDB文件初始化,因为AOF文件的写入更加频繁,可以更加完整的还原数据库数据。
10.2 自动间隔性保存
通过Save配置,可以让Redis周期性任务执行时检查配置时间内是否进行了配置次数以上的修改,如果有则使用EGSAVE命令保存RDB文件。
10.2.2 dirty计数器和lastSave属性
dirty:自上次保存后服务器进行过多少次修改。
lastSave:服务器进行上次保存的时间。
10.3 RDB文件结构
1>REDIS:文件开头,在载入时快速判断是否为RDB文件。
2>db_version:RDB文件版本号。
3>database:全部数据库的全部键值对。
4>EOF:RDB文件结束标志。
5>check_sum:校验用,校验文件是否损坏。
10.3.1 database部分
1>SELECTDB:标志一个新的database开始读取。
2>db_number:数据库ID
3>key_value_pairs:全部键值对及过期时间。
10.4 分析RDB文件
略,用到的时候再说吧。(P133)