1. 现场快速诊断与隔离
1.1 初步判断与崩溃征兆
在Redis崩溃的现场,运维人员需要快速确认崩溃类型。核心表现包括应用连接失败、延迟飙升、CPU/内存异常、日志里出现错误信息。要优先判断是单点故障还是集群问题、以及是持久化文件损坏还是内存数据损坏。
通过监控面板和日志可以快速提取线索:INFO server、INFO persistence、以及系统级别指标。异常的报错如 "Redis is starting..." 长时间 Bootstrap 表明需要紧急干预。
1.2 日志与状态采集
收集最近的系统和Redis日志用于分析。最近的错误条目、OOM事件、fallocate相关日志常常指向崩溃原因。执行如下命令查看实时输出与历史日志。
关键点在于确保数据不会因操作而进一步丢失。保存当前日志快照、导出关键指标,并将现场信息归档作为后续溯源材料。
2. 节点重启与一致性确认
2.1 预备工作与风险评估
在尝试重启前,先评估风险:遇到崩溃时直接重启可能带来数据丢失、持久化文件损坏扩散。确认配置文件、持久化方式、磁盘状态,并在可控范围内执行。若是集群,需与其他分区节点沟通,避免分裂脑。
准备好回滚计划与备份:最近的RDB/AOF备份、快照,以及可用的系统镜像。
2.2 重启流程与一致性检查
按标准流程执行重启,优先保证服务可再次正常启动。执行命令前后,使用 redis-cli INFO Replication、INFO Persistence、以及 SERVER状态 观察一致性。若使用系统服务管理,确保服务在启动日志中无错误。
# 以 systemd 管理的 Redis 重启示例
sudo systemctl stop redis
# 可选:确保没有残留的 Redis 进程
ps -ef | grep redis | grep -v grep
sudo systemctl start redis
sudo systemctl status redis
在重启完成后,逐步验证数据一致性:集群模式下的槽位状态、主从同步状态、以及持久化状态。
3. 数据恢复策略与工具
3.1 RDB 与 AOF 的选型与定位
Redis的两大持久化机制是 RDB 与 AOF。RDB 提供历史快照,AOF 提供持续日志,两者可互补。若遇到崩溃,优先确认最近的RDB是否可用,若无或损坏则考虑 AOF。

在实际运维中,需要记录持久化文件的位置与当前策略:dir、dbfilename、appendonly、appendfilename等配置项。
3.2 恢复流程与实操步骤
先关闭 Redis 防止写入继续,确保恢复过程的稳定性。停机时间越短越好,但要确保数据一致性。
# 停止 Redis,确保不再写入
sudo systemctl stop redis# 如果使用 RDB 恢复,替换工作目录下的 dump.rdb,然后重启
cp /backup/redis/dump.rdb /var/lib/redis/dump.rdb
sudo systemctl start redis
# 或者确认 AOF 的完整性后再启动
如果使用 AOF,先修复 AOF 文件:redis-check-aof --fix /var/lib/redis/appendonly.aof,然后重新启动服务。可选地在修复前先备份现有的 AOF 文件。
# 修复 AOF 文件并重新加载
redis-check-aof --fix /var/lib/redis/appendonly.aof
sudo systemctl restart redis
数据最终是否能够完整恢复,需要通过 redis-cli 进行一致性检查:如检查 INFO Persistence、LASTSAVE、dbsize 等指标,以及 keys 的数量与最近写入记录。
4. 事后治理与防护
4.1 持久化配置优化与灾难演练
在崩溃事件后,回到稳定状态阶段,需对持久化策略做必要优化。确保 appendonly yes、appendfsync everysec,并设置合理的 RDB 保存点,如 save 900 1、save 60 1000等。RAM、磁盘 IOPS、以及 WAL 日志大小的监控也不可忽略。
对运维团队进行灾难演练,确保在真实环境中能快速按流程执行:演练脚本、回滚计划、以及自动化检查点。
4.2 防护措施与配置示例
下面给出一个简化的 Redis 配置片段,展示常见的安全与稳定性设置。持久化、内存限制、与日志级别将直接影响崩溃后的恢复时间。
# /etc/redis/redis.conf 的示例段落
appendonly yes
appendfsync everysec
save 900 1
save 300 10
maxmemory 4gb
maxmemory-policy allkeys-lru
loglevel notice
在生产中还应启用 AOF 的 fsync 策略、编写适配的备份计划,以及对关键节点部署高可用方案(如 Redis 哨兵、主从复制、或集群模式)。


