首页  >  文章  >  数据库  >  rdb-aof混合持久化

rdb-aof混合持久化

齐天大圣
齐天大圣原创
2020-05-22 16:47:21171浏览

之前分别写过RDB持久化以及AOF持久化的文章,他们各有各的优缺点。rdb文件体积小,加载速度快,但不能做到实时持久化。aof可以做到实时持久化,但是文件体积比起rdb太过巨大。那有没有办法把这两种方式结合起来,文件体积小,另外还能做到实时持久化呢?

非常幸运,redis从4.0后就支持rdb-aof混合持久化了。而且是现在比较推荐的方式。

配置也非常简单,只需要配置两个选项即可。

appendonly yes
aof-use-rdb-preamble yes

注意,appendonly也必须设为yes。

案例

通过一个案例,展示给大家看看rdb-aof混合持久化的过程。

目前,我redis数据是空的

cat appendonly.aof

该文件目前没有任务内容。现在,我们执行一条set命令,再来看看

# 执行了一条命令后
127.0.0.1:6379> set name gwx
OK
# appendonly.aof里面有内容了
# cat appendonly.aof 
*3
$3
set
$4
name
$3
gwx

现在aof文件里存放的是正常的aof格式内容。然后再执行bgrewriteaof及一个set命令后,再看看appendonly.aof内容。

127.0.0.1:6379> bgrewriteaof
Background append only file rewriting started
127.0.0.1:6379> set age 28
OK
# cat appendonly.aof 
REDIS0009 redis-ver5.0.5
redis-bits		

以上是rdb-aof混合持久化的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn