redis持久化
2020-08-17 11:31:17 1 举报
redis持久化原理
作者其他创作
大纲/内容
阻塞
client
是
sync
bgsave成功
存在ROF?
dump.rdb二进制文件
redis
redis启动
RDB模式
是否开启AOF
append 到AOF缓冲区
加载RDB
问题:当redis重启时,RDB文件和AOF文件加载的顺序是怎样的?
bgsave
否
AOF持久化流程:1.所有的写入命令(set hset)都会append追加到aof_buff缓冲区中2.aof缓冲区向磁盘做sync同步3.随着AOF文件越来越大,需定期对AOF文件进行重写,达到压缩4.当redis重启时,可load加载AOF文件进行恢复
SAVE
非阻塞
失败
命令写入
命令写入:append、文件同步(sync)、文件重写(BGREWRITEAOF)、重启恢复(load)
fork创建子进程
load
创建
redis子进程
存在RDB?
启动redis成功?
生成AOF文件
成功
AOF模式
启动redis成功
rewrite重写压缩
加载AOF
BGSAVE
save命令
RDB持久化方式:RDB持久化把当前进程里面的数据生成快照文件(.rdb)保存在磁盘中的过程。有手动触发和自动触发手动触发有:save 和 bgsave命令save命令:阻塞当前redis,直到RDB持久化过程完成为止,若内部实例比较大,会造成长时间的阻塞,线上环境不建议使用。bgsave命令:redis进程执行fork操作创建子线程,子线程执行持久化,是save的优化,当执行redis-cli shutdown时,如果没有开启AOF持久化,则会自动执行 bgsave命令。
redis重启加载AOF文件
0 条评论
下一页