首页/数据/Redis 进阶速查/redis-check-rdb 校验快照
持久化56 条

redis-check-rdb 校验快照

redis-check-rdb 工具可解析快照文件、报告版本与键数量,并对损坏位置给出提示,是恢复前验证备份可用性的关键一步。

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

恢复前先校验文件

redis-check-rdb 是随 Redis 一起提供的校验工具:它解析 RDB 文件,输出格式版本、数据库与键数量的统计信息,发现损坏时会指出问题所在的位置。它的用途是「确认文件能不能读」,而不是「把坏文件修好」。校验通过只说明结构完整,并不代表内容符合业务预期,所以完整的验证还应该包含用这个文件真的启动一次实例,并对关键业务数据做抽样核对。

基本信息

用途校验与查看 RDB 文件内容概况
用法redis-check-rdb <文件路径>
输出RDB 版本、键数量、辅助元信息
退出码非 0 表示文件不可读或已损坏
局限只做报告与校验,不负责修复

典型使用场景

  • 备份完成后自动校验,通过的文件才进入可用备份清单
  • 恢复演练的第一步:先校验文件再启动实例
  • 排查启动失败:确认是否是 RDB 文件损坏导致
  • 版本升级前核对老快照能否被新版本二进制读取
  • 交接与审计:证明某个时间点的备份确实可用

校验与验证

校验与验证
redis-check-rdb /backup/redis/dump-2026-10-10.rdb   # 校验结构并查看统计
redis-check-rdb /data/redis/dump.rdb; echo "退出码: $?"   # 非 0 即为异常
# 结构校验通过后,用独立实例做真实恢复验证
redis-server --port 6390 --dir /tmp/restore-test --dbfilename dump.rdb
redis-cli -p 6390 DBSIZE                       # 键数量是否符合预期
redis-cli -p 6390 --scan | head -20            # 抽样看键名是否正常

校验输出的关注点

输出项含义异常信号
RDB 版本文件格式版本号高于当前二进制支持的版本会加载失败
键数量文件中包含的键总数与预期量级差异大说明拿错了文件
辅助元信息生成时间等元数据时间不符合预期说明不是目标快照
退出码0 表示可读非 0 表示文件损坏或不可读
发现损坏时优先从更早的备份恢复,而不是现场修补:RDB 是二进制整体格式,局部修补的可靠性无法保证,修补后的文件往往在运行一段时间后才暴露出问题,代价更大。

易错点

  • 只在出事时才校验备份,长期存在「备份了但不可用」的隐患
  • 把校验通过等同于数据正确,缺少业务抽样核对,恢复后才发现数据不对
  • 用旧版本二进制去读新版本生成的快照,加载失败却误判为文件损坏
  • 备份文件与实例处在同一故障域内,文件校验通过也挡不住一起丢失

数据来源与参考

  • Redis 官方文档:redis-check-rdb 工具说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌