RDB持久化的配置
在redis.conf中也就是我们上面的安装的时候拷贝到/etc/redis 目录下的6379.conf文件,中找到 save属性,然后配置为:
save 60 10000
这个属性配置的含义是:每隔60s,如果有超过1000个key发生变更,那么就生成一个新的dump.rdb文件,就是当前redis内存中完整的数据快照,这个操作也称之为:snapshotting,这个也可以通过手动执行save 或者bgsave命令设置。
这个可以配置多个,默认就是配置的多个,如下图;设置多个,就是多个snapshotting检查点,每到一个检查点,就会去check一下,看是否有指定的key数量发生了变化,如果有那么就生成一个新的dump.rdb文件。
image.png
RDB持久化机制的工作流程
(1)redis根据配置自己去生存rdb快照文件
(2)fork一个子进程出来。
(3)子进程尝试将数据dump到临时的rdb文件中。
(4)完成rdn快照文件的生成之后,就会去替换旧的快照文件。
手动去尝试实验一下
(1)手动通过save命令将数据保存,然后kill -9 杀死redis进程,这样再看存储持久化文件的目录里面会有一个dump.rdb文件,然后再启动redis,再访问存储的key值,将会得到value。
(2)将上面的快照文件删除,然后启动redis,此时redis中的数据为空,然后随便set几个值进去,然后我们通过redis-cli shutdown命令来优雅的关闭redis,然后再重启redis,发现刚才存进去的值还在,在看存储文件的目录,发现生成了一个快照文件,此时就说明如果使用shutdown命令优雅的关闭redis,redis自己会在关闭之前将数据刷入快照文件中。
网友评论