首頁  >  文章  >  資料庫  >  rdb-aof混合持久化

rdb-aof混合持久化

齐天大圣
齐天大圣原創
2020-05-22 16:47:21113瀏覽

之前分别写过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