首页/数据/数据库速查/AOF 混合持久化(aof-use-rdb-preamble)
Redis 运维与场景124 条

AOF 混合持久化(aof-use-rdb-preamble)

混合持久化让重写后的 AOF 以 RDB 格式打底(base),之后追加命令:加载更快、体积更小;5.0+ 默认开启。

数据库速查数据更新于 2026-10-13

混合持久化是什么

aof-use-rdb-preamble 让 AOF 重写后的文件以 RDB 格式打底,之后追加写命令:重启加载时先读紧凑的 RDB 部分,再重放少量增量命令,因此加载更快、文件更小。Redis 5.0 起默认开启;7.0 之后 AOF 改为多文件结构,base 与 incr 文件本身就体现了这种混合思路。

基本信息

适用Redis 4.0 引入,5.0 起默认 yes
yes 语义重写后 base 为 RDB 二进制格式,其后追加命令
no 语义全文本命令格式,兼容旧版本但加载慢
7.0+ 结构appendonlydir 目录下 base.rdb、incr.aof 与 manifest 清单

查看与校验

查看与校验
CONFIG GET aof-use-rdb-preamble        # 返回 yes 表示混合模式
CONFIG GET appenddirname                # 7.0+ AOF 目录名,常见为 appendonlydir
ls -l /data/redis/appendonlydir/        # base.rdb、incr.aof 与 manifest 清单文件
redis-check-rdb /data/redis/appendonlydir/appendonly.aof.1.base.rdb   # 校验 base 文件完整性
redis-check-aof --fix /data/redis/appendonlydir/appendonly.aof.1.incr.aof   # 只修复增量部分
INFO persistence | grep -E 'aof_enabled|aof_last_bgrewrite_status'   # 持久化状态与最近重写结果

文件与取值读法

对象含义注意
aof-use-rdb-preamble=yesbase 为 RDB 二进制不能用文本工具编辑
aof-use-rdb-preamble=no全文本命令格式文件大、加载慢,属旧模式
base.rdb重写时的全量快照缺失即无法加载,不可手工删除
incr.aof重写之后追加的命令修复 AOF 只应针对这部分
manifest 清单记录各文件作用与顺序7.0+ 加载与修复都依赖它

典型使用场景

  • 重启加载时间过长,评估混合模式带来的收益
  • AOF 目录文件结构排查,确认 base 与 incr 是否齐全
  • AOF 损坏后的修复,判断该修哪一类文件
  • 持久化策略评审:AOF 与 RDB 的取舍与组合
  • 版本升级后核对目录结构变化与配置默认值
混合模式下 base 文件是二进制格式,手工拼接或文本编辑都会直接损坏数据;修复工具只对 incr 部分使用 --fix。
把 base.rdb 当成冗余文件删除会让 Redis 直接启动失败,AOF 目录里的每个文件都参与加载流程,清理前必须确认。

与 RDB 的配合

  • RDB 与 AOF 可以同时开启,重启时优先用 AOF 恢复以保证数据更完整
  • 定期核对 aof_last_bgrewrite_status 是否为 ok,重写失败会让文件持续增长
  • AOF 目录要纳入备份范围,只备份 RDB 会丢失最近一段时间的写入

混用时的排查思路

  • 加载失败先看日志里报错的文件名,定位是 base 还是 incr 出问题
  • 修复只针对增量文件,base 损坏只能回退到更早的快照加备份

易错点

  • 删除或改名 base 文件:AOF 目录缺件导致启动失败,只能从备份恢复
  • 用文本工具拼接或修改 base.rdb:二进制格式被破坏,加载直接报错
  • 把 redis-check-aof 用在 base.rdb 上:base 需要 redis-check-rdb 校验,工具用错得不到有效结论
  • 只开 AOF 不开重写:incr 文件持续膨胀,恢复时间越来越长

数据来源与参考

  • Redis 官方文档: aof-use-rdb-preamble
  • Redis 官方文档: AOF 持久化

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌