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 像记账,记录数据变化。

相关推荐
Lethehong1 小时前
双擎并驱·全链路并行:KFS让TB级异构增量同步秒级到达
数据库
MC皮蛋侠客1 小时前
SQLAlchemy 系列(八):AsyncIO、并发与 Web 生命周期——让每个并发任务持有自己的 Session
数据库·python
枫叶v.2 小时前
Prompt Injection 防不住怎么办?从 Source-Sink 模型设计 Agent 安全边界
数据库·安全·prompt
Lucky_Turtle3 小时前
【Milvus】向量数据库
数据库
吴声子夜歌3 小时前
MongoDB 8.0——安全性
数据库·mongodb
xcLeigh3 小时前
KingbaseES 的卢智能运维体架构深度拆解
运维·数据库·人工智能·ai·架构·ffmpeg·智能体
weixin_397574094 小时前
按行业定制分析视角
大数据·数据库·人工智能·企业数据治理·数据驱动决策·本体语义·企业经营分析
鹿角片ljp4 小时前
Redis 深度复习:从入门到面试通关
数据库·redis·面试
Ming_studying5 小时前
Python + SQLite FTS5 构建本地文档全文搜索器:增量索引、中文检索与高亮
jvm·数据库·python·sqlite
云和恩墨5 小时前
从静态备份到极速恢复:zData S重构多元数据库时代的“第二存储”底座
数据库·重构