← [ BACK_TO_NOTES ]

Redis RDB、AOF 与恢复

解释 Redis RDB 快照、AOF 日志、fsync 与恢复边界,并区分持久化、备份和业务事实源三种不同职责。

#concept #growing #backend #ops #redis

[!info] related notes

Redis RDB、AOF 与恢复

一句话定义

Redis 可以通过 RDB 时间点快照、AOF 写操作日志或二者组合,在进程重启后恢复内存状态;这提升 durability,但不自动把 Redis 变成适合所有长期业务事实的 system of record。

RDB

periodic point-in-time snapshot
→ compact snapshot file
→ restart restore

优点:

  • 文件紧凑;
  • 适合备份 / 全量恢复;
  • 恢复路径清晰。

代价:

  • 两次快照之间的最近写入可能丢失;
  • 生成快照会带来 fork / I/O / memory 成本。

AOF

append mutations
→ persistent log
→ restart replay

比周期快照提供更细的恢复窗口,但要承担 append I/O、fsync、AOF rewrite、文件增长和恢复时间。

appendfsync

always
→ durability 更强,I/O 成本更高

everysec
→ 常见性能 / durability 折中

no
→ 更多交给 OS 刷盘,丢失窗口更不确定

Persistence ≠ Backup

Persistence
→ Redis 自己重启后恢复最近状态

Backup
→ 独立时间点副本,可应对误删、文件损坏、灾难

错误删除也可能被 AOF 忠实记录,因此 AOF 不能替代备份。

Persistence ≠ System of Record

是否做事实源取决于:

  • 事务边界;
  • 关系约束;
  • 历史审计;
  • 查询模型;
  • replay/recovery;
  • 数据治理;
  • domain ownership。

“开启 AOF”只说明 Redis 自身可以更好恢复,不等于 BodyState、Diagnosis、Runtime Event、Job Ledger 就应该迁成 Redis-only。

BodySense

当前生产 Redis 使用:

appendonly yes
appendfsync everysec
persistent volume

这降低重启导致的状态损失,但仍应分别验证 Session、Refresh rotation/replay、Rate Limit 等 Key 的恢复语义,而不是只验证普通 Key 能否回来。

创建于 2026/9/18 更新于 2026/9/18
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本