Redis 持久化 AOF 与 RDB 的区别
一、RDB 的全称与定义
全称:Redis Database(Redis 数据库快照)
原理:
- RDB 通过生成内存数据的二进制快照文件(默认文件名
dump.rdb
),将某一时刻的完整数据库状态持久化到磁盘 。 - 触发方式:
- 手动命令:
SAVE
(阻塞主线程)或BGSAVE
(后台子进程异步生成)。 - 自动触发:通过配置
save <seconds> <changes>
规则(例如save 900 1
表示 900 秒内至少 1 次修改触发快照)。
- 手动命令:
二、AOF 的全称与定义
全称:Append-Only File(仅追加文件日志)
原理:
- AOF 记录所有写操作命令(如
SET
、HSET
),以文本日志形式追加到文件(默认文件名appendonly.aof
),重启时通过重放命令恢复数据。 - 写入策略:
always
:每次写操作后同步写入磁盘(数据零丢失,性能最低)。everysec
:每秒批量同步(默认模式,平衡性能与安全性)。no
:依赖操作系统刷盘(性能高,数据丢失风险最大)。
三、核心原理与触发机制
特性 | RDB | AOF |
---|---|---|
持久化方式 |