什么是RDB

redis将内存中的数据存储到磁盘上的二进制文件。通过该文件,能够在启动时,还原数据库状态(数据)。

载入和写入

载入
仅在服务启动时载入。AOF优先载入,如果没有开启AOF的时候,载入RDB

SAVE命令
服务过程写入。回绝其它客户端命令

BGSAVE命令
子过程写入。回绝SAVE、BGSAVE命令

主动保留

配置文件中的save项,示意x秒内保留>n次,触发BGSAVE主动保留。多个save配置,满足一个即触发。

save SECONDS SAVE_TIMES

保留条件读入redisServer对象中,相干字段

struct redisServer {  struct saveparams *saveparams; // 保留条件数组  long dirty; // 批改计数器  time_t lastsave; // 上次保留工夫}struct saveparams {  time_t seconds;  int changes;}

RDB文件构造