redis RDB持久化
2018-07-22 本文已影响0人
我要尝鲜
RDB文件的创建与载入
有两个命令可以用于生成RDB文件,一个是SAVE,另一个是BGSAVE。
SAVE命令会阻塞redis服务器进程,直到RDB文件创建完毕为止。
BGSAVE会派生出一个子进程,然后由子进程负责创建RDB文件,服务器进程继续处理命令请求。
自动间隔性保存
用户可以在指定配置文件或者传入启动参数的方式设置save选项,如果没有主动设置,则默认为:
save 900 1 -- 900秒内对数据库有一次改动。
save 300 10 -- 300秒内对数据库有10次改动。
save 60 10000 -- 60秒内对数据有有10000次改动。
dirty计数器和lastsave属性
dirty计数器记录距离上一次成功执行SAVE命令或者BGSAVE命令之后,服务器对数据库状态进行了多次修改(写入、删除、更新等)
lastsave属性是一个UNIX时间戳,记录了服务器上一次成功执行SAVE命令或者BGSAVE命令的时间。
总结:
RDB文件用于保存和还原redis服务器所有数据库中的所有键值对数据。
SAVE命令由服务器进程直接执行保存操作,所以该命令会阻塞服务器。
BGSAVE由子进程执行保存操作,所以该命令不会阻塞服务器。
服务器状态中会保存所有用save选项设置的保存条件,当任意一个保存条件被满足时,服务器会自动执行BGSAVE命令。
RDB文件是一个经过压缩的二进制文件,由多个部分组成。
对于不同类型的键值对,RDB会使用不同的方式来保存它们。