时间:2021-07-01 10:21:17 帮助过:20人阅读
Redis的持久化分为RDB持久化和AOF持久化,本篇文章主要说RDB持久化相关的东西。
RDB持久化就是把当前redis数据库中的数据保存到硬盘的过程。
RDB持久化的触发方式有两种,第一种是手动触发,另外一种是自动触发。
手动触发RBD主要使用save
和bgsave
命令。其实bgsave是对save命令阻塞问题的优化,因此你应该总是使用bgsave命令。
save
命令会阻塞当前主进程,直到RDB持久化过程执行完毕,对于内存比较大的实例会造成非常长时间的阻塞,因此线上环境不要使用。
bgsave
命令执行时,redis主进程会fork出子进程,具体的RDB的过程是由子进程来完成的,在持久化期间,主进程依然响应来自应用程序的命令。阻塞仅仅会发生在fork出子进程的阶段。
如果在redis配置文件中使用了save m n
(表示m秒内进行了n次数据修改)配置,满足情况的时候会触发bgsave
从节点执行全量复制操作的时候,主节点会自动触发bgsave命令生存rdb文件并发送给从节点
在执行debug reload(这个时候redis实例的run id不会发生变化)重新加载redis的时候,也会自动触发bgsave
默认情况下执行shutdown命令,如果没有开启AOF持久化功能,就会自动执行bgsave。
( TODO 后续补充流程图)
info stats
命令的latest_fork_usec
选项查看最近一次fork操作所耗费的时间,单位是微秒
原文链接:https://wenchao.ren/archives/165
Redis持久化-RDB
标签:相同 阻塞 选项 链接 数据库 redis配置文件 页面 替换 配置