Redis 持久化对性能影响深度解析
2024年双十一前夜,Redis 报警:OPS(每秒操作数)从 10 万降到 3 万。
DBA 排查发现,BGSAVE 正在执行,CPU 使用率飙到 80%。
开发同学问:"持久化不是异步的吗?怎么会影响性能?"
【面试官心理】 这道题我用来测试候选人对 Redis 持久化机制的理解深度。能说出 RDB 和 AOF 的占 60%,能讲清各自对性能影响的占 20%,能说清优化策略的占 10%。
一、持久化机制 🔴
1.1 RDB(快照持久化)
1.2 AOF(追加文件持久化)
二、RDB 对性能的影响 🔴
2.1 fork() 的代价
2.2 COW 机制
2.3 RDB 的问题
三、AOF 对性能的影响 🟡
3.1 AOF 写入策略对比
3.2 AOF 重写
3.3 AOF 的性能问题
四、优化策略 🟡
4.1 RDB + AOF 混合持久化
4.2 性能监控
4.3 配置建议
五、生产最佳实践 🟡
5.1 避免 fork 阻塞
5.2 AOF 磁盘选择
5.3 容量规划
💡
生产环境推荐使用 everysec 策略 + 混合持久化。在数据安全和性能之间取得平衡。
【面试官心理】 能说出"COW 机制"和"混合持久化"的候选人,基本都研究过 Redis 源码。这是 P6+ 的水准。