Redis持久化
持久化命令:保存当前快照信息
save
RDB启动方式——save指令相关配置
RDB启动方式——save指令工作原理
RDB启动方式——bgsave指令
- 命令:
bgsave
- 作用:手动启动后台保存操作,但不是立即执行
RDB启动方式——bgsave工作原理
在指定的时间间隔内将内存中的数据集快照写入磁盘,它恢复时是将快照文件直接读取到内存里。
Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的。这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。RDB保存的文件是dump.rdb。
执行flushall命令或者退出redis,都会触发RDB规则,产生RDB文件。
如何恢复RDB文件?
只需要将RDB文件放在我们redis启动目录就可以,redis启动的时候会自动检查dump.rdb恢复其中的数据。
RDB优点:
- 适合大规模的数据恢复
- 对数据的完整性要求不高
RDB缺点:
- 需要一定的时间间隔进行操作,如果redis意外宕机,那么最后一次修改数据就没有了
- 数据存储量较大,效率较低—基于快照思想,每次读写都是全部数据,当数据量巨大时,效率非常低
- 大数据量下的IO性能较低
- fork进程的时候,会占用一定的内存空间