Redis持久化最佳实践
一、选择策略
二、推荐配置示例
通用平衡型(RDB+AOF 混合,适合大多数业务)
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfsync everysec
aof-use-rdb-preamble yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
rdbcompression yes
rdbchecksum yes
dir /var/lib/redis
dbfilename dump.rdb
appendfilename "appendonly.aof"
说明:RDB 提供快速恢复与备份,AOF 提供更高持久性,混合模式让恢复先加载 RDB 再回放少量增量,效率更高。
强一致型(AOF 优先,丢失最小化)
appendonly yes
appendfsync always
aof-use-rdb-preamble yes # 仍建议开启,利于重写与恢复
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
说明:每次写都落盘,持久性最强,但写性能下降明显,通常仅在强一致场景使用。
缓存型(尽量不启用持久化)
# save 900 1
# save 300 10
# save 60 10000
appendonly no
说明:如需备份,可在从节点定时执行 BGSAVE 生成 RDB 快照,避免影响主节点性能。
三、关键细节与调优
四、不同场景配置速查表
| 场景 | 启用项 | 关键参数 | 取舍与说明 |
|---|---|---|---|
| 缓存加速、可丢失 | 关闭或仅从节点 RDB | save 关闭或宽松阈值 | 性能优先,备份在从节点做 RDB 快照 |
| 通用生产 | RDB + AOF 混合 | save 900 1 300 10 60 10000;appendfsync everysec;aof-use-rdb-preamble yes | 恢复快、丢失小,运维简单 |
| 强一致 | AOF 为主 | appendfsync always;aof-use-rdb-preamble yes | 持久性最强,写性能下降明显 |
| 快速恢复/大对象 | RDB 为主 | save 策略适中;rdbcompression yes | 启动/恢复快,容忍分钟级丢失 |