Home >Database >Redis >rdb-aof hybrid persistence

rdb-aof hybrid persistence

齐天大圣
齐天大圣Original
2020-05-22 16:47:21219browse

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

The above is the detailed content of rdb-aof hybrid persistence. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn