上一篇
场景引入:凌晨3点,你的电商平台突然断电重启,Redis里未落地的秒杀订单数据全部蒸发,客服电话被打爆,技术团队连夜救火——如果提前做好全盘持久化,这本该是个平静的夜晚...
想象Redis是个超快但健忘的天才:它能每秒处理10万次请求,但断电就会失忆,持久化就是给这位天才配了个笔记本(硬盘),通过两种核心机制实现:
RDB(快照模式)
.rdb
压缩二进制文件 save 300 100
配置,5分钟内达到100次写入就触发备份 AOF(日志模式)
appendfsync always # 每个命令都刷盘(最安全但性能差) appendfsync everysec # 每秒刷盘(折中方案,默认推荐) appendfsync no # 交给操作系统决定(风险最高)
2025年最新生产环境推荐组合方案:
# redis.conf 关键配置 save 900 1 save 300 10 appendonly yes appendfilename "appendonly.aof" aof-use-rdb-preamble yes # 开启混合模式(AOF+RDB)
效果说明:
RDB文件处理:
# 用LZF压缩(默认开启) rdbcompression yes # 定期用redis-check-rdb检测文件完整性
AOF文件瘦身:
# 自动重写触发条件 auto-aof-rewrite-percentage 100 # 当前AOF体积比上次重写后大100%时触发 auto-aof-rewrite-min-size 64mb # AOF文件至少达到64MB才触发
磁盘写满应急处理:
appendonly no
关闭AOF config set
动态调整持久化策略 BGREWRITEAOF
重建AOF文件 性能瓶颈排查:
# 监控持久化延迟 redis-cli info persistence | grep rdb_last_bgsave_status redis-cli info persistence | grep aof_delayed_fsync
某视频平台曾遭遇的坑:
save ""
关闭了RDB + AOF的appendfsync no
BGSAVE
是否需要强一致性?
├─ 是 → AOF always + 定期RDB备份
├─ 否 → 看性能要求
├─ 高吞吐优先 → RDB + AOF everysec
└─ 恢复速度优先 → 混合持久化(aof-use-rdb-preamble)
最新实践建议(2025年8月):
没有完美的持久化方案,只有最适合业务场景的取舍,你的缓存数据值得更好的"保险柜"。
本文由 滕瑶 于2025-08-09发表在【云服务器提供商】,文中图片由(滕瑶)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/578423.html
发表评论