很多人误以为:
Redis = 内存 = 不持久这是不准确的。
Redis 官方文档给出的持久化选项有四种:
- RDB
- AOF
- No persistence
- RDB + AOF
#1. RDB —— 快照室
RDB 是定时做点时间快照。
优点:
- 文件紧凑
- 适合备份
- 适合灾难恢复
- 大数据集重启更快
缺点:
- 如果故障发生在两次快照之间,可能丢最近几分钟数据
示例:
save 60 1000表示:
60 秒内如果至少有 1000 次变更,就做一次快照#2. AOF —— 操作日志室
AOF 会把每次写命令追加记录下来,重启时回放。
appendonly yes官方文档指出,自 Redis 7.0 起,AOF 采用 multi-part AOF 机制:
- base file
- incremental files
- manifest
AOF 常见 appendfsync 策略:
appendfsync always
appendfsync everysec
appendfsync no其中官方建议和默认重点是:
everysec因为它通常在性能和安全之间更平衡。
#3. 最务实的官方建议
Redis 官方文档直接说:
如果你想要比较高的数据安全度,通常应该同时使用 RDB 和 AOF。
也就是说:
纯缓存场景 → 可以不持久化
重视恢复速度和备份 → RDB
重视更强耐久性 → AOF
重视综合安全性 → RDB + AOF