执行BGREWRITEAOF后Redis的AOF文件为空的问题咨询
Redis混合持久化模式下的文件疑问解答
1. 为什么appendonly.aof文件大小为0?
这是因为你启用了Redis的混合AOF持久化架构(通过aof-use-rdb-preamble yes和appenddirname配置开启)。在这个模式下,传统的单一appendonly.aof文件不再存储实际持久化数据,Redis会将全量数据以RDB格式、增量命令以AOF格式拆分存储在appendonlydir目录中。执行BGREWRITEAOF后,Redis生成了新的基础RDB文件,此时还没有新的写入命令产生,所以增量AOF文件为空,而原appendonly.aof仅作为兼容占位文件,因此大小为0。
2. appendonly.aof.3.base.rdb和appendonly.aof.manifest是什么?
appendonly.aof.3.base.rdb:这是混合AOF模式下的基础快照文件。执行BGREWRITEAOF时,Redis会把当前全量数据以RDB格式写入该文件——相比纯AOF格式,RDB加载速度更快、占用空间更小,作为AOF的基础部分存在,后续新增的写入命令会对应写入incr.aof文件。文件名中的数字3是版本标识,每次重写都会递增。appendonly.aof.manifest:这是AOF集合的清单文件,记录了当前有效的AOF组成文件信息(比如包含哪些base.rdb和incr.aof)、文件校验值、版本号等元数据。Redis启动时会通过这个文件识别需要加载的持久化文件组合。
3. 启动时Redis会选择哪个RDB文件恢复数据?
由于你的Redis实例启用了AOF(appendonly yes),启动时会优先使用AOF持久化数据恢复:先加载appendonlydir目录下的base.rdb还原全量数据,再加载incr.aof执行增量命令。只有当AOF功能关闭、AOF文件损坏且无法修复时,Redis才会尝试加载常规快照dump.rdb。
内容的提问来源于stack exchange,提问作者Ankit Sahay
相关产品推荐
相关产品推荐

