文章
技术分享
关于redis持久化需要知道的事
redis有3中持久化的方式分别是:RDB、AOF和混合持久化
目录
- Redis 持久化机制详解
- 一、整体概述
- 二、三种持久化机制详解
- 三、原理对比
- 1. RDB(快照)
- 2. AOF(追加日志)
- 3. 混合持久化
- 四、优缺点分析
- 五、适用场景分析
- 六、推荐配置示例(redis.conf)
- 七、部署与运维建议
- ✅ 架构推荐
- ✅ 持久化策略选型建议
- 八、总结
- 📎 参考文章
Redis 持久化机制详解#
一、整体概述#
Redis 是一个基于内存的高性能键值数据库,但也提供了多种持久化机制以实现 数据不丢失 或 快速恢复。Redis 的三种持久化机制可以单独使用也可以并存,包括:
- RDB(Redis Database Snapshot)
- AOF(Append Only File)
- 混合持久化(Hybrid Persistence)
二、三种持久化机制详解#
三、原理对比#
1. RDB(快照)#
- 触发方式:
- 配置
save 规则(如 save 900 1 表示 900 秒内至少 1 次写操作触发快照)
- 或手动执行
BGSAVE
- 工作流程:
- Redis 主进程 fork 子进程,子进程将内存数据写入
dump.rdb 文件
- 恢复方式:
- 启动 Redis 时读取
dump.rdb 恢复数据
2. AOF(追加日志)#
- 触发方式:
- 配置
appendonly yes
- 每次写命令被记录到 AOF 文件中,刷盘方式有:
always(每次写命令都刷盘,最安全但最慢)
everysec(每秒刷盘,推荐)
no(由操作系统控制刷盘时机)
- 恢复方式:
- Redis 启动时 replay AOF 文件中的命令顺序执行恢复
3. 混合持久化#
- 触发方式:
- 当开启 AOF 且配置
aof-use-rdb-preamble yes 时,AOF 重写时启用混合模式
- 原理:
- 重写后的 AOF 文件以 RDB 快照为开头,后续追加 rewrite 过程中的命令日志
- 恢复方式:
- Redis 启动时先读取 RDB 段加载基础数据,再 replay 命令部分恢复完整状态
四、优缺点分析#
五、适用场景分析#
六、推荐配置示例(redis.conf)#
# RDB 快照(默认开启)
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
# AOF 日志(开启并设为每秒刷盘)
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
# 混合持久化
aof-use-rdb-preamble yes
# 自动重写 AOF 文件
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 持久化文件保存目录
dir /data/redis
七、部署与运维建议#
✅ 架构推荐#
- 主从 + Sentinel:高可用保障
- 定期备份:同步 RDB/AOF 至异地存储
- 监控持久化状态:
INFO Persistence 查看是否持久化成功
redis-check-aof、redis-check-rdb 做完整性验证
✅ 持久化策略选型建议#
八、总结#
- Redis 的三种持久化机制不是互斥的,可以根据业务需求灵活搭配。
- 推荐在生产环境开启 RDB + AOF(everysec)+ 混合持久化,实现 数据安全性、性能和恢复速度的平衡。
- 合理配置
rewrite 条件、定期备份和监控状态,是保障 Redis 稳定可靠运行的关键。
📎 参考文章#