Redis 的两种持久化方式:RDB 和 AOF,一次讲懂

把数据写进 Redis 后,查询一切正常。

可服务器一重启,数据却没了。

原因很简单:Redis 的数据主要存储在内存中。

内存读写很快,但断电、关机或 Redis 重启后,里面的数据可能会丢失。

所以,Redis 需要把内存中的数据保存到磁盘。这个过程,就叫作持久化。

Redis 常用的持久化方式有两种:RDB 和 AOF。

一、RDB:定期给数据拍照

RDB 就像给 Redis 数据定期拍快照。

例如每小时持久化一次,在晚上 8 点保存了一次,8 点到 8 点 10 分写入的新数据还没保存,服务器就断电了。重启后只能恢复到 8 点,之后的数据会丢失。

因此,RDB 的特点是:

定期保存某一时刻的完整数据。

优点是文件较小、恢复较快;缺点是两次快照之间的数据可能丢失。

RDB 保存的是某一个时间点的数据状态。

二、AOF:把每次操作记下来

AOF 可以理解为一本操作账本。

Redis 每执行一次写操作,就把这次操作记录下来。

例如:

text 复制代码
设置 name = Redis
将 count 加 1
删除 user

Redis 重启后,会按照记录重新执行这些操作,从而恢复数据。

相比 RDB,AOF 通常能保留更多最新数据,但文件也可能更大。

AOF 记录的是数据发生过的变化。

三、RDB 和 AOF 有什么区别?

对比项 RDB AOF
通俗理解 定期拍照 持续记账
保存内容 某一时刻的数据 每次写操作
数据丢失 可能丢失两次快照之间的数据 通常丢失的数据更少
文件大小 通常较小 通常较大
恢复方式 加载数据快照 重新执行写操作

总结

Redis 使用持久化,是为了在重启后恢复数据。

RDB 像拍照,保存数据状态;AOF 像记账,记录数据变化。

相关推荐
独泪了无痕6 小时前
Spring Data Redis 快速上手
spring boot·redis·后端
IT19956 小时前
Fail2Ban 防护 MySQL 实战|登录失败 3 次,IP 封禁 24 小时
数据库·mysql
夕除6 小时前
redis--IO 多路复用(select + poll)
数据库·sql
lzhdim10 小时前
100条常用SQL语句
数据库·sql·mysql·mybatis
天河归来10 小时前
从原始消息到业务数据:三层数据架构的设计与实践
数据库·数据仓库·架构
数据库小学妹11 小时前
金融数据库成本怎么算?五笔钱加一张TCO表
数据库·金融行业·数据库选型·国产化替代·tco·金融数据库
KaiwuDB11 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
用户529589316685011 小时前
三马代驾实战:抢单池的 Redis 锁 + RabbitMQ 异步消费怎么做
redis
auspicious航11 小时前
PostgreSQL的备份与恢复
数据库·postgresql
这个DBA有点耶12 小时前
从 MySQL 到时序数据库:我帮朋友做迁移的完整记录
数据库·架构·dba