首页/数据/数据库速查/AOF 刷盘策略(appendfsync always/everysec/no)
Redis 运维与场景124 条

AOF 刷盘策略(appendfsync always/everysec/no)

三档同步策略决定 AOF 的丢失窗口与吞吐:always 最安全最慢、everysec 默认折中、no 完全交给 OS。

数据库速查数据更新于 2026-10-12

取值

取值行为丢失窗口
always每次写命令后 fsync几乎不丢(最慢)
everysec后台每秒 fsync(默认)最多丢 1 秒
no不主动 fsync,OS 决定最多丢 30 秒(Linux 默认刷盘周期)

查看与调整

查看与调整
CONFIG GET appendfsync          # everysec
CONFIG SET appendfsync everysec
# 重写期间是否暂停 fsync(避免双份 IO,但会拉长丢失窗口):
CONFIG GET no-appendfsync-on-rewrite
everysec 的 1 秒丢失是「Redis 崩溃」窗口;机器断电时 always 也可能丢一次 write(未 fsync 前),绝对不丢需要应用层确认。

易错点

  • 为了性能把 appendfsync 设成 no:故障时丢失窗口远超预期
  • 把 everysec 当「最多丢 1 条」:最坏 1 秒内的整批写都没了

数据来源与参考

  • Redis 官方文档: appendfsync

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌