首页/数据/Redis 进阶速查/appendfsync:always/everysec/no
本包目录(421 条)
数据结构与选型42 条
持久化56 条
主从与哨兵51 条Cluster 集群44 条内存与管理99 条性能与排障129 条

appendfsync:always/everysec/no

appendfsync 控制刷盘时机:always 每条命令后 fsync(最稳最慢)、everysec 每秒一次(默认,折中)、no 交给操作系统(最快但丢失窗口不可控)。

Redis 进阶速查数据更新于 2026-10-12

三档对比

取值刷盘时机丢失窗口性能
always每条写命令后接近零(取决于磁盘确认)吞吐明显下降
everysec每秒一次(后台线程)约 1 秒通用默认
no由 OS 决定通常数十秒内最快

示例

示例
redis-cli CONFIG SET appendfsync everysec
redis-cli CONFIG GET appendfsync
everysec 由后台线程执行 fsync,避免主线程被磁盘延迟拖住,这是它成为默认值的原因。

易错点

  • 把 everysec 理解为「不丢数据」是误判,断电或内核崩溃仍有约 1 秒丢失窗口
  • 磁盘抖动时 everysec 可能退化为最长 2 秒一次的刷盘,需要监控 aof 相关延迟指标

数据来源与参考

  • Redis 官方文档:redis.conf appendfsync 注释
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌