秒级落盘
Redis 快,是因为数据活在内存里;但内存一断电就没了。开启 AOF 「每 1 秒写盘」后,Redis Cloud 会每隔一秒,把这一秒内的所有写操作 fsync 到持久磁盘——既保住速度,又几乎不丢数据。
内存很快,也很脆
Redis 把数据放在内存里,所以读写快。代价是:内存是易失的——进程崩溃、机器重启、断电,内存里的一切瞬间清零。
持久化(persistence)做的事,就是把内存里的数据复制一份到磁盘这类持久存储上。故障之后,Redis 能从磁盘把数据读回来、重建现场。Redis Cloud 的持久化,是把内存数据复制到底层云实例挂载的持久盘上。
内存像一块白板:写得快、擦得也快,一停电就全白。落盘就是每隔一会儿,把白板上的内容抄进一个上锁的账本——白板没了,账本还在,照着重抄一遍就恢复了。
关掉持久化 = 裸奔。 如果不开持久化,数据库一旦宕机,内存里的数据就彻底丢失。纯做缓存、丢了无所谓时才建议关。
流水账(AOF) vs 定时拍照(快照)
AOF · 追加文件
像一本流水账,把每一个写操作按顺序记进磁盘日志。恢复时把账本重放一遍,就能重建到故障前的状态。耐用性更高。
快照 · 定时全量
每隔固定时间(1 / 6 / 12 小时)给内存拍一张全量照片存盘。恢复更快,但两次快照之间的写入有丢失风险。
一句话:AOF 更耐用(durability 更高),代价是更多资源和更长恢复时间;快照恢复快,但丢数据风险更高。
关键在 fsync 的节奏
fsync 是把数据真正刷到磁盘的动作。AOF 落盘的「勤快程度」有三档,安全与性能在这里权衡——「秒级」就是中间那一档。
每次写入
每一个写都立刻 fsync。几乎零丢失,但性能开销最大。
每 1 秒
每隔一秒批量 fsync。最多丢约 1 秒数据,性能几乎无损。
不用 AOF
只靠快照或完全不落盘。最快,但崩溃丢失窗口最大。
「每 1 秒」是绝大多数场景的甜点档:丢失上限约 1 秒,而吞吐几乎和纯内存一样。要真正零丢失,才升到「每次写入」(需 Pro)。
三步打开每秒落盘
数据持久化是「每个数据库」独立的配置项,在编辑数据库设置里就能改。
打开数据库设置
在 Redis Cloud 控制台里选中目标数据库,进入 编辑(Edit) 页面。
选择持久化档位
找到 Data persistence 一项,从下拉里选 Append Only File (AoF) every 1 second。可选值一览:
保存并等待后台生效
保存后,新设置会在后台异步应用,会有短暂延迟。
小知识:当数据库开启了副本(replication),持久化会在副本上执行,从而减少对主库的性能影响。
哪种套餐能用哪档
- 完全不支持持久化
- 选项整个被禁用
- AOF 每 1 秒
- 所有快照档(1/6/12 小时)
- AOF 每次写入
- AOF 每次写入
- AOF 每 1 秒
- 所有快照档
- 每个数据库都可单独配置
想用秒级落盘,至少要付费套餐(付费 Essentials 或 Pro)。想要每次写入的零丢失,则必须是 Pro。
关于秒级落盘的几个真相
内存的速度,磁盘的安心
AOF「每 1 秒写盘」用几乎为零的性能代价,换来「最多丢约 1 秒」的持久保障。对绝大多数在线业务,这就是速度与安全之间最划算的那个点。


