首页/数据/Redis 进阶速查/manifest 完整性要求
持久化56 条

manifest 完整性要求

多文件 AOF 的 manifest 记录每个文件类型、序号与文件名:任何增删改名都要同步更新,否则加载直接失败,属于强一致性清单。

Redis 进阶速查数据更新于 2026-10-13

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 自动生成与更新,人工不要手改
一致性要求文件缺失、多出或与清单不符都会导致启动时加载失败

三类文件对照

文件命名示例作用
baseappendonly.aof.1.base.rdb重写产生的基线,按 aof-use-rdb-preamble 决定是 RDB 还是 AOF 格式
incrappendonly.aof.1.incr.aof基线之后的增量命令,序号递增,可以有多个
manifestappendonly.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 启动会直接失败;确需调整时先停实例、整目录备份,再同步改清单。

易错点

  • 备份只拷了部分文件却保留完整 manifest,恢复时加载必然报错
  • 手工编辑清单后忘记同步改名或改序号,清单与实际文件对不上
  • 把 manifest 当普通文本随意改动格式,解析失败导致实例起不来
  • 修复操作前不备份整个 appendonlydir,一旦失败连原始数据一起丢失
  • 沿用旧版单文件思路只处理某个 aof 文件,多文件结构下校验与恢复都不完整

数据来源与参考

  • Redis 7.0:appendonlydir 与 manifest 结构说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌