Redis两种持久化过程及AOF重写

一、RDB持久化

RDB持久化:将内存中的数据生成快照保存到硬盘上。
触发条件:

  • 手动触发:通过redis-cli执行BGSAVE命令触发;
  • 自动触发:
    – 配置文件中的“save m n”配置项:在m秒时间内发生了n次写入操作;
    – 主从复制结构中,从节点进行全量复制时,会触发主节点执行BGSAVE命令进行RDB持久化;
    – 通过redis-cli执行shutdown命令时,如果没有开启AOF持久化功能则自动执行BGSAVE进行RDB持久化。

1.1、RDB持久化过程

RDB持久化过程

①某个条件触发RDB持久化;
②如果没有正在执行的子进程(如RDB/AOF子进程),Redis父进程fork一个子进程,用于持久化过程,fork过程中,Redis父进程会短暂阻塞。通过INFO stats命令的“latest_fork_usec”记录上一次fork操作的耗时,单位是微秒;
③Redis父进程fork操作完成,将不再阻塞父进程,父进程可以继续响应其它命令;
④子进程生成RDB文件,根据Redis父进程内存中的内容生成快照,并替换原有RDB文件。LASTSAVEINFO persistence命令的“rdb_last_save_time”记录上一次RDB持久化的时间戳;
⑤子进程执行完成,发送信号告知Redis父进程,Redis父进程更新INFO persistence中的rdb相关信息。

1.2、RDB持久化相关配置

  • 何时进行RDB持久化:“save m n”:在m秒时间内发生了n次写入操作;
  • RDB文件存储路径:”dir /usr/local/redis/data”,Redis运行时通过CONFIG SET dir ***更改;
  • RDB文件名称:“dbfilename dump_6379.rdb”,Redis运行时通过CONFIG SET dbfilename ***更改文件名;
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值