什么是 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 文件构造