Redis 之 BGREWRITEAOF

一、关于 BGREWRITEAOF

在前面的一篇文章中,分享了关于 redis 的持久化,Redis 之 RDB 与 AOF,本文简单介绍下 AOF 的一个很重要的命令 - BGREWRITEAOF,1.0.0 开始可以使用,指定 Redis 启动 AOF 重写进程。重写将创建当前AOF 文件的一个小型优化版本。
1、如果 BGREWRITEAOF 失败,服务野不会丢失任何数据,因为旧的 AOF 保持不变。
2、只有当没有任何后台进程在执行持久性操作时,才会由 Redis 触发重写。具体地说:
(1)如果一个 Redis 子进程正在磁盘上创建快照,就会设置一个任务执行 AOF 重写,但直到生成RDB文件的保存子文件终止时才开始执行。在这种情况下,BGREWRITEAOF 返回OK代码,但是带有适当的消息。从 Redis 2.6 开始,可以使用 INFO 命令查看是否计划执行 AOF重写任务
(2)如果 AOF 重写已经在进行中,命令将返回一个错误,并且不会在稍后的时间安排 AOF 重写进入
3、自 Redis 2.4 以后 AOF 重写由 Redis 自动触发的,但是 BGREWRITEAOF 命令可以在任何时候触发重写

二、重写的原理

重写的原理其实很简单,例如:

EX1(A1<A2<A3):
    A1 时刻,set  a b c d 四个元素
    A2 时刻, set   e f 两个元素
    A3 时刻,进行重写,那么最后的命令就是 set a b c d e f,一条命令达到之前两条命令的效果

EX2(B1<B2<B3):
	B1 时刻,set a b c d e f 
	B2 时刻,delete c e
	B3 时刻重写,最后记录的命令就是 set a b d ff
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值