主题
RDB 快照
RDB(Redis Database)快照是 Redis 提供的持久化方式之一,通过将内存中的数据生成快照文件保存到磁盘,实现数据的持久化备份。
工作原理
Redis 会按照配置的触发条件,fork 出一个子进程,子进程负责将当前数据写入一个临时文件,然后替换旧的快照文件 dump.rdb
,整个过程对主进程无阻塞。
配置方式
在 redis.conf
文件中配置触发快照的条件:
conf
save 900 1 # 900秒内如果至少有1个key被修改,就触发快照
save 300 10 # 300秒内如果至少有10个key被修改,就触发快照
save 60 10000 # 60秒内如果至少有10000个key被修改,就触发快照
快照文件位置
默认快照文件为 dump.rdb
,存储在 Redis 工作目录(dir
配置)下。
手动触发快照
可以通过命令手动生成快照:
bash
SAVE # 阻塞式保存,主线程等待完成
BGSAVE # 异步保存,子进程完成后写入文件
优缺点
- 优点:生成的快照文件体积小,加载速度快,适合做定期备份。
- 缺点:快照之间的修改会丢失,存在数据丢失风险;保存时可能阻塞(SAVE 命令)。
应用场景
适合对数据持久化要求不是特别严格的场景,或者结合 AOF 作为混合持久化方案,提高数据安全性和恢复速度。