工具不多但各有分工
持久化排障用到的工具其实很集中:redis-check-rdb 做快照的离线校验,redis-check-aof 检查并在必要时修复 AOF 尾部损坏,INFO persistence 给出保存状态与错误标志,LASTSAVE 返回最近一次成功保存的时间戳,DBSIZE 提供数据量基线,DEBUG RELOAD 让实例把数据落盘后再重新加载一次,用来自检整条链路是否通畅。熟记这几件的分工,排查时就能按顺序推进。
基本信息
| 校验类 | redis-check-rdb 与 redis-check-aof,读写文件、不影响运行实例 |
|---|---|
| 状态类 | INFO persistence,包含保存状态、耗时与错误标志 |
| 计数类 | LASTSAVE 与 DBSIZE,提供时间与数量两个基线 |
| 自检类 | DEBUG RELOAD,仅建议在测试环境使用 |
| 使用前提 | 大文件校验与会带来 IO 压力,安排在低峰 |
典型使用场景
- 怀疑持久化异常时先看状态字段,定位是快照问题还是 AOF 问题
- 备份归档前逐个文件校验,确认没有被截断
- AOF 尾部因为进程被强杀而截断,用修复工具处理后再启动
- 升级前后用自检命令验证数据落盘与加载链路是否通畅
- 对账时用键总数与最近保存时间确认备份时点是否合理
组合示例
组合示例
redis-check-rdb /data/redis/dump.rdb # 校验快照版本与完整性
redis-check-aof /data/redis/appendonly.aof # 检查 AOF,必要时加 --fix
redis-cli LASTSAVE # 最近一次成功保存的时间戳
redis-cli DBSIZE # 当前键总数
redis-cli INFO persistence # 保存状态与错误标志工具速查
| 工具 | 用途 | 注意事项 |
|---|---|---|
| redis-check-rdb | 检查快照格式版本与完整性 | 只读文件,可在实例运行时执行 |
| redis-check-aof | 检查 AOF,可截断修复尾部 | 修复会丢尾部命令,先备份原文件 |
| INFO persistence | 保存状态、耗时与错误标志 | 关注状态字段的变化趋势而非单次取值 |
| LASTSAVE | 最近成功保存时间 | 与备份时点结合判断数据新鲜度 |
| DEBUG RELOAD | 落盘后重新加载自检 | 会阻塞服务,仅限测试环境 |
排查顺序建议是先看状态标志确定问题类别,再用对应工具校验文件,最后才动恢复流程,避免一上手就改文件。
在写入进行中校验文件可能得到误导性结果,尽量选在低峰或临时停止写入后执行,结论才可靠。