redis混合持久化的配置

redis4.0之后,持久化方式多了一种,叫混合持久化,我在安装配置过程中费了一些周折,以为没有配置成功,后来看了一些持久化的原理才弄明白,记录如下:

一、参考

1、redis源码分析(6)——aof rewrite https://blog.csdn.net/chosen0ne/article/details/44461497

2、REDIS AOF的实现https://blog.csdn.net/wudongxu/article/details/7053304

二、混合持久化需要在配置文件中配置两个地方。

1、appendonly yes

2、aof-use-rdb-preamble yes

原因:混合持久化是依赖aof文件的。当满足条件时aof会进行重写(Rewrite),可以避免aof文件过大的问题。如果aof-use-rdb-preamble yes,重写的时候,aof文件内容格式是[RDB file][AOF tail] 明显特征是aof文件的开头为:REDIS。这个是RDB文件的开头。一般默认重写时机为auto-aof-rewrite-percentage 100 ;auto-aof-rewrite-min-size 64mb。即文件达到64m时进行重写,然后如果文件大小增长了一倍,也会触发重写。

测试

1、往redis中插入了6万条数据,aof大小为59m

redis混合持久化的配置_第1张图片

aof 开头文件为

redis混合持久化的配置_第2张图片

2、再插入1万条数据

aof 文件没有变大 反而变成了53m 接近dump.rdb 的大小

redis混合持久化的配置_第3张图片

此时查看aof文件 以REDIS开头

redis混合持久化的配置_第4张图片

3、如果不开启混合持久化,删除aof和rdb,重启后插入相同的7万条数据,

aof的数据要比dump.rdb更大一些。

redis混合持久化的配置_第5张图片

此时aof的开头如下

redis混合持久化的配置_第6张图片

 

你可能感兴趣的:(redis)