Redis RDB持久化是Redis默认的数据备份方案,通过定时生成内存快照实现数据持久化。RDB采用fork子进程机制,在bgsave命令或配置规则触发时将数据写入dump.rdb二进制文件,既保证性能又减少磁盘占用。相比AOF持久化,RDB恢复速度更快且文件更小,但存在数据丢失风险。生产环境中建议根据业务需求选择RDB或AOF,Redis 4.0+版本支持混合持久化模式。本文详细解析RDB工作原理、配置参数、优缺点及面试常见问题,帮助开发者深入理解Redis持久化机制。
大家好,我是程序员老王。今天咱们聊聊面试高频题——Redis的RDB持久化机制。无论是大厂还是中小公司,只要问Redis持久化,RDB绝对是必考点!先给大家送个福利,2025年Java面试宝典:点我领取,助你备战金三银四!
RDB(Redis Database)是Redis默认的持久化方案,核心思想是定时生成内存数据的快照。想象一下给Redis按下暂停键,把此刻所有数据冻结成二进制文件dump.rdb。面试官最爱问:"说说RDB的实现原理?"——本质上就是fork子进程进行数据落地,避免阻塞主线程。

手动触发
save命令会阻塞所有请求直到备份完成,而bgsave才是生产环境首选——通过fork子进程异步处理
自动触发
在redis.conf配置触发规则,比如:
save 900 1 # 900秒内至少1次修改
save 300 10 # 300秒内至少10次修改
关机触发
执行shutdown命令时,如果没有开启AOF,Redis会主动执行一次RDB备份
配置项直接影响RDB性能和可靠性:
dbfilename dump.rdb # 快照文件名
dir ./ # 存储路径
stop-writes-on-bgsave-error yes # 磁盘满时拒绝写入
rdbcompression yes # 启用LZF压缩

数据丢失风险
两次备份间宕机会丢失最近数据(通常5-15分钟)
大数据量fork阻塞
10GB内存fork可能阻塞主线程700ms,这在Redis 6.0前尤为明显
当面试官抛出灵魂拷问:"生产环境该用RDB还是AOF?" 我的建议是:
最后插播个福利:如果你需要购买面试鸭会员,通过面试鸭返利网找我可返现25元!用优惠码【RDB25】立减,程序员能省则省嘛 😄

本文涉及面试真题:
- 描述RDB持久化触发机制
- 解释bgsave原理及潜在风险
- RDB与AOF的适用场景对比
这些真题解析在面试鸭会员题库都有详细拆解,建议搭配实战演练巩固理解!
扫码联系我返利
(当前返利8元,金额随官方实际价格波动,最好提前咨询)

面试鸭小程序码

美团大额优惠券,给自己加个鸡腿吧!

支付宝扫码领取1-8元无门槛红包
