RDB vs AOF 对比与选型
面试官问:"Redis 持久化用 RDB 还是 AOF?"
小张说:"都用。"
面试官追问:"为什么两个都要?各自的优缺点是什么?"
小张说:"RDB 快,AOF 安全?"
面试官继续追问:"那 RDB 和 AOF 可以同时用吗?恢复的时候用哪个?"
小陈答不上来。
RDB 和 AOF 是 Redis 持久化的两大支柱。这道题能说清楚两者对比和选型原则的候选人,对 Redis 的持久化机制有系统理解。
一、RDB vs AOF 全维度对比 🔴
1.1 核心对比表
1.2 数据安全性对比
1.3 ❌ 错误示范
候选人原话:"AOF 永远比 RDB 安全。"
问题诊断:在某些场景下,AOF 可能比 RDB 更不安全。比如 everysec 模式下,如果 Redis 在两次 fsync 之间崩溃,仍然会丢失 1 秒数据。
候选人原话 2:"RDB 和 AOF 恢复时用同一个。"
问题诊断:Redis 启动时,如果同时存在 RDB 和 AOF,优先用 AOF 恢复(因为 AOF 数据更完整)。
【面试官心理】 这道题我能从"恢复优先级"追问。如果候选人能说出"AOF 恢复优先于 RDB",说明他理解了 Redis 启动时的数据加载顺序。
二、同时启用 RDB 和 AOF 🔴
2.1 配置方式
2.2 恢复优先级
2.3 子进程开销
三、生产选型建议 🟡
3.1 选型决策树
3.2 最佳实践
3.3 各场景推荐
四、数据迁移与备份 🟢
4.1 RDB 备份
4.2 AOF 备份
4.3 灾难恢复
【面试官心理】 持久化选型是 Redis 生产环境中的核心问题。能根据业务场景说出具体配置的候选人,说明他有生产经验。