manifest 是什么
Redis 7.0 起单实例 AOF 变为多文件结构,统一放在 appendonlydir 目录:一个 base 基线文件、若干 incr 增量文件,以及一个 manifest 清单文件。manifest 逐行记录每个文件的名字、序号与类型,Redis 启动时按它决定加载哪些文件以及加载顺序,因此它是一份强一致清单,任何增删改名都必须与内容同步。
基本信息
| 默认文件名 | appendonly.aof.manifest |
|---|---|
| 所在目录 | appendonlydir,由 appenddirname 指定 |
| 单行格式 | file <文件名> seq <序号> type b|i,b 为 base、i 为 incr |
| 维护方式 | 由 Redis 自动生成与更新,人工不要手改 |
| 一致性要求 | 文件缺失、多出或与清单不符都会导致启动时加载失败 |
三类文件对照
| 文件 | 命名示例 | 作用 |
|---|---|---|
| base | appendonly.aof.1.base.rdb | 重写产生的基线,按 aof-use-rdb-preamble 决定是 RDB 还是 AOF 格式 |
| incr | appendonly.aof.1.incr.aof | 基线之后的增量命令,序号递增,可以有多个 |
| manifest | appendonly.aof.manifest | 记录上面两类文件的类型与序号,决定加载集合与顺序 |
| 备份对象 | 整个 appendonlydir | 目录内文件与清单必须一起搬走,缺一不可 |
查看与校验
查看与校验
ls -l /data/redis/appendonlydir/ # 目录里实际有哪些文件
cat /data/redis/appendonlydir/appendonly.aof.manifest # 清单与文件是否一一对应
redis-check-aof --fix /data/redis/appendonlydir/appendonly.aof.manifest # 修复前先整目录备份
redis-check-rdb /data/redis/appendonlydir/appendonly.aof.1.base.rdb # 基线为 RDB 格式时可单独校验典型使用场景
- 备份校验:打包前确认目录内容与 manifest 条目一致
- 恢复演练:把整个目录拷到测试实例,验证能否正常加载
- 故障排查:启动报 AOF 相关错误时,先核对清单与实际文件的对应关系
- 升级迁移:从旧版单文件 AOF 切换过来时确认目录结构被正确初始化
- 容量管理:统计 base 与 incr 的体积变化,判断重写是否按预期进行
aof-use-rdb-preamble 决定 base 文件是 RDB 还是 AOF 格式;跨版本恢复前先在同版本实例上做一次加载验证,避免恢复现场才发现格式不被识别。
手工改名、删除或新增 AOF 文件而不更新 manifest,Redis 启动会直接失败;确需调整时先停实例、整目录备份,再同步改清单。