Redis 持久化:RDB 与 AOF 到底该怎么选
Redis 持久化:RDB 与 AOF 到底该怎么选
标签:
Redis持久化RDBAOF数据安全
一、先分清两种机制
| 机制 | 本质 | 说人话 |
|---|---|---|
| RDB | 定时快照 | 每隔一段时间给内存拍张"照片"存盘 |
| AOF | 实时记录 | 每来一条写命令,就往日志里追加一笔 |
一句话:RDB 存的是"结果",AOF 存的是"过程"。
二、五个维度的核心差异
| 维度 | RDB | AOF |
|---|---|---|
| 更新频率 | 定时(如每 5 分钟一次) | 实时(每次写都追加) |
| 数据丢失量 | 两次快照间的数据会丢 | 最多丢最后 1 秒(刷盘默认每秒) |
| 文件体积 | 小(紧凑二进制) | 大(命令日志,随时间膨胀) |
| 恢复速度 | 快(直接加载) | 慢(逐条重放命令) |
| 性能开销 | 快照瞬间 fork 有短暂阻塞 | 持续写盘,略占 I/O |
为什么会这样? 根源就四个字——频率不同。
- RDB 是"定时拍片",两次快照之间改动没落盘,所以丢得多;但文件就是那一刻的内存快照,小而快。
- AOF 是"笔笔记账",几乎每条写都落盘,所以丢得少;但也因此文件大、恢复慢,还要靠
rewrite定期压缩。
三、选型逻辑
| 场景 | 推荐 | 理由 |
|---|---|---|
| 缓存可重算、丢了不怕 | RDB | 快、省空间,代价是少量丢失 |
| 数据必须尽量不丢 | AOF | 丢得少,还能用 redis-check-aof 修复损坏 |
| 生产环境(两者都要) | RDB + AOF | RDB 快恢复 + AOF 高安全,互补 |
实践中最常见的做法是混合开启:用 AOF 保安全,用 RDB 保恢复速度。
四、总结
- 要速度、能容忍丢数据 → RDB
- 要安全、能容忍恢复慢 → AOF
- 生产默认 → 两者都开
持久化没有绝对的好坏,只有"丢多少你能接受"和"恢复多慢你能忍"之间的权衡。
如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ ~


浙公网安备 33010602011771号