插件窝 干货文章 redis重启会清除数据吗

redis重启会清除数据吗

持久化 数据 重启 配置 615    来源:    2025-03-29

Redis 重启是否清除数据取决于持久化配置,以下是详细分析:


1. 无持久化配置(危险)

  • 行为:若未启用任何持久化(RDB/AOF),所有数据仅存储在内存中。
  • 重启结果:数据完全丢失
  • 检查配置bash redis-cli config get save redis-cli config get appendonly 若输出为空或为 save ""appendonly no,则无持久化。

2. RDB(快照)持久化

  • 行为:按规则定时将内存数据保存到磁盘(默认文件 dump.rdb)。
  • 重启结果
    • 正常关闭(如 SHUTDOWN 命令):Redis 会立即触发 RDB 保存,重启后恢复数据。
    • 异常崩溃:可能丢失最后一次快照后的数据(取决于 save 配置间隔)。
  • 关键配置ini save 900 1 # 15分钟内至少1个key变更则保存 save 300 10 # 5分钟内至少10个key变更则保存 dbfilename dump.rdb

3. AOF(追加日志)持久化

  • 行为:记录所有写操作命令(默认文件 appendonly.aof)。
  • 重启结果
    • 默认会重放 AOF 文件中的所有命令恢复数据。
    • 数据安全性高(可配置 appendfsync everysec 平衡性能与安全)。
  • 关键配置ini appendonly yes appendfsync everysec # 每秒同步,最多丢1秒数据

4. 混合持久化(Redis 4.0+)

  • 行为:结合 RDB 快照 + AOF 增量日志(AOF 文件包含 RDB 前缀和后续命令)。
  • 重启结果:恢复速度快且数据完整。
  • 配置ini aof-use-rdb-preamble yes

5. 手动备份与恢复建议

  • 备份:即使启用持久化,建议定期手动备份 RDB/AOF 文件。 bash cp /var/lib/redis/dump.rdb /backup/
  • 恢复:将备份文件放回 dir 指定目录并重启 Redis。

总结表

持久化方式 数据丢失风险 恢复速度 配置示例
100% - save ""
RDB 最后一次快照后数据 save 900 1
AOF 最多1秒(默认) appendonly yes
RDB+AOF 最多1秒 中等 aof-use-rdb-preamble yes

建议:生产环境至少启用 RDB + AOF,并定期验证备份文件有效性。