我有一个Redis示例,其中我启用了快照和AOF。
#snapshot
save 60 5
dbfilename "dump.rdb"
dir "/Ankit/redis_installation/redis-stable"
#aof
appendonly yes
appendfilename "appendonly.aof"
appenddirname "appendonlydir"
aof-use-rdb-preamble yes
我启动了Redis示例,并将一些值设置为相同的键,然后执行BGREWRITEAOF,以期望这些多个SET命令会被截断。令我惊讶的是,当我搜索.aof文件时,我看到它是空的。我在一个.rdb文件中有一些数据。(注意,这不是常规快照创建的rdb文件)
[root@kafka1 redis-stable]# ll appendonlydir/
total 8
-rw-r--r--. 1 root root 100 Jan 13 12:56 appendonly.aof.3.base.rdb
-rw-r--r--. 1 root root 0 Jan 13 12:56 appendonly.aof.3.incr.aof
-rw-r--r--. 1 root root 88 Jan 13 12:56 appendonly.aof.manifest
如果看到,则.aof文件大小为0。这2个额外文件(appendonly.aof.3.base.rdb
和appendonly.aof.manifest
)是什么?
在这种情况下,如果我的Redis启动,它将没有一个AOF文件来重放数据,而且它现在有2个RDB文件(下面提到)。
- dump.rdb:使用常规快照创建
- appendonly.aof.3.base.rdb:我不知道这是为什么创造出来的。
1条答案
按热度按时间0yg35tkg1#
自Redis 7.0开始,它使用多部分AOF格式,包括3种类型的文件:
当我查找. aof文件时,我看到它是空的。我在一个. rdb文件中有一些数据。
因为重写的结果是RDB格式的基文件,即appendonly.aof.3.base.rdb,重写后没有新的命令发送到Redis,所以incr AOF文件,即appendonly.aof.3.incr.aof,是空的。
在这种情况下,如果我的Redis启动,它将没有一个AOF文件来重放数据,而且它现在有2个RDB文件(下面提到)。
不。它有AOF文件(多部分格式,基本文件的格式是RDB)和RDB文件,当你重新启动它时,它将使用AOF文件。