2025年Java面试宝典 最新整理版已更新,包含Redis高频考点及实战案例,点击链接即可保存(提取码:9b3g)
Redis持久化机制为什么是面试必考点?
Redis作为高性能缓存数据库,持久化机制直接影响数据安全性和服务可靠性。面试中常被问到"Redis宕机如何恢复数据?RDB和AOF有什么区别?"等问题,本质上都是在考察对持久化原理的理解。掌握这套机制,既是架构设计能力体现,也是故障排查的重要基础。

两大核心机制:RDB与AOF
RDB快照持久化
通过生成内存快照实现持久化,默认保存为dump.rdb文件。核心特点:
- 定时备份:可配置save参数,如
save 900 1表示900秒内有至少1次写操作就触发 - 二进制压缩存储:文件体积小,加载速度快
- fork子进程处理:主进程持续响应请求,通过写时复制保证数据一致性

AOF日志追加
记录每一条写操作命令,以日志形式持久化。关键特性:
- 三种写回策略:
- always:每条命令都刷盘(安全但性能差)
- everysec:每秒批量刷盘(平衡选择)
- no:由系统决定(性能最优)
- 重写机制:自动压缩冗余命令,如将10次incr合并为set操作
- 渐进式重写:使用AOF重写缓冲区避免阻塞主线程
混合持久化:鱼与熊掌兼得
Redis 4.0引入混合模式,结合两者优势:
- 重启加载流程:
- 先加载RDB快速恢复基础数据
- 再重放AOF增量操作
- 配置方式:
aof-use-rdb-preamble yes - 性能平衡:既保证恢复速度,又能最大限度保留操作记录

生产环境选型建议
- 数据安全优先:建议启用AOF+everysec策略
- 灾备恢复考量:定期手动执行bgsave备份RDB到异地
- 性能敏感场景:纯RDB模式(注意可能丢失最近一次快照后的数据)
- 监控指标:
- aof_current_size:AOF文件大小
- rdb_last_bgsave_status:最近RDB状态
- aof_rewrite_in_progress:重写是否进行中
高频面试问题拆解
-
RDB快照期间发生写操作怎么办?
通过写时复制技术,父进程持续处理请求,子进程对原始内存数据进行序列化 -
AOF重写会阻塞服务吗?
使用子进程处理且通过缓冲区记录重写期间的命令,主进程基本不受影响 -
同时开启RDB和AOF会怎样?
Redis重启时优先使用AOF文件恢复,因其完整性更好
准备面试时,推荐使用面试鸭会员服务,通过面试鸭返利网购买可享25元返利。最新Java面试题库及Redis实战解析,可下载2025年Java面试宝典系统学习(提取码:9b3g)。持续关注Redis新特性如7.0版本的Multi-part AOF改进,保持技术敏感度才能更好应对面试挑战。


