2025年Java面试宝典下载地址
(点击蓝色字体链接领取,提取码:9b3g)
4. Redis数据持久化的方式有哪些

(Redis持久化示意图)
在面试中如果被问到Redis数据持久化的问题,你可以这样回答——
Redis作为内存数据库,虽然读写速度快,但数据易丢失。持久化机制就是Redis保障数据可靠性的核心手段,目前主要有三种实现方式:RDB快照、AOF日志、混合持久化。下面具体展开分析。
一、RDB快照:内存数据全量备份
RDB(Redis DataBase) 是Redis默认的持久化方案。它的核心原理是定时对内存中的全量数据生成二进制快照(dump.rdb文件)。举个例子,你可以配置Redis每隔1小时保存一次快照,或者当数据集有1000次修改时触发保存。
RDB的三大特点
- 性能高:生成RDB文件时通过fork子进程处理,主进程继续提供服务
- 恢复快:直接加载RDB文件比AOF日志重放更快
- 数据完整性低:两次快照之间的数据可能丢失
实际生产中,建议在从节点执行RDB备份,避免主节点因fork操作产生延迟。配置参数如下:
save 900 1 # 15分钟内有至少1个键被改动则保存
save 300 10 # 5分钟内有至少10个键被改动
二、AOF日志:实时记录写操作
AOF(Append Only File) 通过记录所有写操作命令实现持久化。举个例子,当执行SET name mianshiyafanli时,这条命令会追加到AOF文件中。
AOF的三大核心机制
- 写后日志:先执行命令,再记录日志(避免语法错误阻塞请求)
- 重写压缩:定期对AOF文件瘦身(例如将100条INCR命令合并为1条SET)
- 刷盘策略:
- always:每次写操作都刷盘(安全但性能差)
- everysec:每秒刷盘(默认推荐)
- no:由操作系统决定

(AOF重写过程示意图)
三、混合持久化:鱼与熊掌兼得
Redis 4.0推出的混合持久化结合了RDB和AOF的优势。它的原理是:
- 使用RDB快照保存全量数据
- 后续增量数据用AOF日志记录
- 重启时先加载RDB内容,再重放AOF日志
这种方式既保证了快速恢复,又能最大限度减少数据丢失。启用方法:
aof-use-rdb-preamble yes
四、生产环境如何选型?
- 数据安全性要求高:AOF everysec + 混合持久化
- 快速恢复优先:RDB
- 折中方案:RDB定时全量备份 + AOF实时增量备份
需要特别注意:RDB和AOF可以同时启用,重启时优先加载AOF文件,因为它通常包含更完整的数据。
高频面试问题预判
-
RDB fork子进程会阻塞主线程吗?
答:fork阶段会有短暂阻塞(与内存大小正相关),生成快照由子进程完成 -
AOF重写的触发条件?
答:auto-aof-rewrite-percentage(当前AOF文件比上次重写后体积增加的比例)
auto-aof-rewrite-min-size(允许重写的最小AOF文件大小)
如果需要系统化准备Redis面试题,推荐使用《2025年Java面试宝典》。这本资料整理了50+大厂真题,涵盖Redis主从复制、集群、缓存穿透等高频考点。
👉 点击获取《2025年Java面试宝典》(提取码:9b3g)
对了,最近发现一个省钱小技巧:通过**面试鸭返利网**购买原价99元的面试鸭会员,可以返现25元。需要刷题的同学可以试试看,能省则省嘛~

(扫码立即领取返利)


