首页/数据/Redis 进阶速查/RDB 版本兼容与升级回滚
持久化56 条

RDB 版本兼容与升级回滚

每个版本写入的 RDB 带版本号,旧版本 Redis 不能加载新版本生成的快照;降级回滚前必须用旧版本能识别的快照,或先导出为通用格式。

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

快照为什么挑版本

RDB 文件头会记录生成它的格式版本号,加载时做方向性兼容检查:低版本生成的快照可以被高版本加载,高版本生成的快照会被低版本拒绝,启动日志会明确给出格式版本不支持的报错。所以升级路径通常畅通,降级却必须先有一份旧版本能认的快照。把这点搞清楚,回滚方案才有意义。

基本信息

兼容方向低版本生成 → 高版本实例:可加载
反向高版本生成 → 低版本实例:拒绝加载并报错
查看方式redis-check-rdb 输出中的版本行
相关查询INFO server 的 redis_version 字段
跨版本替代DUMP/RESTORE 逻辑迁移或业务双写

典型使用场景

  • 大版本升级前评估回滚路径,确认旧版本能加载哪一份快照
  • 主从升级顺序编排:先升从库再升主库,确保复制方向由低到高
  • 用 redis-check-rdb 核对一份备份到底来自哪个版本,避免用错文件
  • 跨版本迁移数据到新集群时先验证加载结果再切换流量
  • 故障回滚时快照用不了,需要立刻判断能否临时用逻辑导出替代

版本核对

版本核对
redis-check-rdb /data/redis/dump.rdb | head -20      # 输出含格式版本与键数量
redis-cli INFO server | grep redis_version           # 当前实例版本
grep -i 'rdb' /var/log/redis/redis.log | tail -5     # 加载失败时的原始报错
redis-check-rdb dump.rdb && redis-server --version   # 先校验文件再决定升级

兼容方向速查

组合结果说明
旧快照 + 新实例可加载向后兼容,正常升级路径
新快照 + 旧实例拒绝加载报格式版本不支持,回滚立刻失败
高版本 AOF + 低版本实例通常不接受命令与格式都可能超出旧版本能力
跨大版本迁移建议逻辑迁移DUMP/RESTORE 或业务双写更可控
RDB 格式版本号与 Redis 版本号不是一一对应,多个小版本可能共用同一个格式版本,判断时以 redis-check-rdb 的实际输出为准。
主从复制也通过 RDB 传输完成首次全量同步,跨大版本混跑时从库可能拒绝加载主库传来的快照,表现为复制反复中断。

易错点

  • 只准备了新版本的回滚安装包,却没准备旧版本能加载的快照,回滚现场才发现数据起不来
  • 混跑大版本时忘记升级顺序,先升主库导致复制因快照格式被拒而中断
  • 直接替换数据目录而不做 redis-check-rdb 校验,把损坏或版本不符的文件带进生产
  • 把格式版本当成 Redis 版本号来解读,据此判断兼容性,结论容易出错

数据来源与参考

  • Redis 官方文档:RDB 版本说明与升级指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌