Redis 重启后数据是否会丢失,取决于其持久化配置。以下是详细分析及解决方案:
CONFIG GET save 和 CONFIG GET appendonly,若均为空或appendonly为no,则无持久化。.rdb文件)。ini
save 900 1 # 15分钟内至少1个key变更则触发保存
save 300 10 # 5分钟内至少10个key变更
save 60 10000 # 1分钟内至少10000个key变更
dbfilename dump.rdb # RDB文件名
dir ./ # 保存路径save 60 1),但会增加磁盘IO。SAVE(阻塞)或 BGSAVE(后台保存)。.aof文件),重启时重放日志恢复数据。ini
appendonly yes
appendfsync everysec # 每秒同步(推荐平衡性能与安全)
# appendfsync always # 每次写都同步(最安全,性能最低)
# appendfsync no # 由操作系统决定(风险最高)BGREWRITEAOF 压缩AOF文件。aof-use-rdb-preamble(混合持久化,Redis 4+)。ini
aof-use-rdb-preamble yesdir 配置为可靠路径,避免与系统盘同分区。dump.rdb 或 appendonly.aof 到异地。redis-check-rdb 或 redis-check-aof 工具检测文件完整性。redis-check-aof --fix 修复文件。| 配置 | 数据丢失风险 | 性能影响 |
|---|---|---|
| 无持久化 | 全部丢失 | 无 |
| RDB | 最后一次快照后数据 | 低 |
| AOF(everysec) | 最多1秒数据 | 中 |
| RDB+AOF混合 | 极低 | 中高 |
推荐:生产环境至少启用 AOF(appendfsync everysec) 或混合持久化。