在基于RDB的持久化机制里会定时把Redis内存数据以快照的方式保存到硬盘上,而在必要的时候就可以通过快照文件来恢复数据。
Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到 一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。 整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能 如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。

在redis.conf中配置文件名称,默认为dump.rdb

rdb文件的保存路径,也可以修改。默认为Redis启动时命令行所在的目录下


上述save 600 1表示当在600秒内有1个或1个以上的键被修改时就会生成快照。其他两行以此类推。
在基于RDB的持久化机制中,除了可以在配置文件里定义触发持久化的条件外,还可以通过save和bgsave这两个命令触发持久化,即把当前内存里的数据写入RDB持久化文件中。 save :save时只管保存,其它不管,全部阻塞。手动保存。不建议。 bgsave:Redis会在后台异步进行快照操作, 快照同时还可以响应客户端请求。 可以通过lastsave 命令获取最后一次成功执行快照的时间
执行flushall命令,也会产生dump.rdb文件,但里面是空的,无意义
设置值

查看dump.rdb

模拟断电,直接shutdown

再重新登入redis,查看是否触发备份

可以看到,快照已经恢复了数据。