再谈Redis持久化

混合持久化

因为RDB持久化无法实时保存数据,数据库或者主机down机时,会丢失数据。AOF持久化虽然可以提高数据的安全性,但是在恢复数据时需要大量时间。因此Redis 4.0 推出RDB-AOF混合持久化。

持久化时,可以根据AOF的落盘策略实时刷盘。

恢复时先加载AOF文件中的RDB部分,然后再加载AOF文件部分。

这样可以兼得RDB和AOF两种持久化的优点。

开启混合持久化

4.0版本的混合持久化功能默认关闭,我们可以通过 aof-use-rdb-preamble配置参数控制该功能的启用。5.0 版本默认开启

需要特别注意的是 要开启混合持久化,必须同时设置 aof-use-rdb-preamble为yes ,开启AOF持久化方式

混合持久化流程

混合持久化开启,系统根据策略触发aof rewrite时,fork 一个子线程将内存数据以RDB二进制格式写入AOF文件头部,那些在重写操作执行之后执行的 Redis 命令,则以AOF持久化的方式追加到AOF文件的末尾。

image

触发机制

因为混合持久化是基于AOF重写的,所以和AOF rewrite的机制一致 。具体参考彻底理解Redis持久化 文章里面的 重写机制

image

混合持久化开启,同时配置RDB的save参数,Redis会生成rdb文件和AOF文件,而不是省略RDB文件。

image

文件格式

开启混合模式时,AOF文件的内容

image

未开启混合持久化,AOF文件的内容

image

-The End-

服务推荐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值