1. 如何在redis中配置RDB持久化文件
在redis持久化中 默认是开启RDB模式的。这里我们只需要对RDB进行配置即可
在上面有三个配置选项 分别是
每隔900秒 有一条key进行变更
每个300秒 有10条key进行变更
没隔60秒 有10000条key进行变更。
以上任意条达成条件后,就会重新生成一个dump.rdb文件。就是当前redis内存中完整的快照,这个操作也被称之为snapshotting,快照也可以手动调用save或者bgsave命令,同步或异步执行rdb快照生成
save可以设置为多个,也就是多个snapshotting检查点,每到一个检查点,就会去check一下,检查是否有指定数量的key发生了变更,如果有那么就会生成一个新的dump.rdb文件。
2. RDB持久化是的工作流程
(1).redis会根据自己的配置去尝试rdb快照文件。
(2) fork出一个子进程
(3)子进程会将当前的dump文件快照到 rdb临时文件当中。
(4)完成rdb快照文件的生成之后,那么就会替换以前的老快照。
3、基于RDB持久化机制的数据恢复实验数据还在,为什么?
我们在redis中存入几条数据
在使用redis-cli SHUTDOWN 停掉redis
这个时候我们进入到存放快照的目录进行查看。
可以看到数据依旧是存在的。
带出来一个知识点,通过redis-cli SHUTDOWN这种方式去停掉redis,其实是一种安全退出的模式,redis在退出的时候会将内存中的数据立即生成一份完整的rdb快照
/var/redis/6379/dump.rdb
(2)在redis中再保存几条新的数据,用kill -9粗暴杀死redis进程,模拟redis故障异常退出,导致内存数据丢失的场景这次就发现,redis进程异常被杀掉,数据没有进dump文件,几条最新的数据就丢失了
使用 kill -9 的方式杀掉redis进程。
在进入到存放快照的文件目录查看快照文件 并没有进行生成。
(3) 我们这里在做一个实验,重新对conf文件进行配置,配置成每五秒进行一次快照,在进行一次实验
设置成 没五秒有1个key进行变更那么就会生成新的dump.db文件
使用kill杀死进程过后 我们可以看到快照文件是生成了的
原文:https://www.cnblogs.com/malike/p/10441145.html