共计 301 个字符,预计需要花费 1 分钟才能阅读完成。
懵了,网上文章越看越懵,求大佬指点
网上文章总结为 everysec 时候,会启动一个后台线程每隔一秒进行一次 fsync,每次 fsync 结束就会记录刷盘时间
1. 主线在执行写命令时候,会检查刷盘时间
2. 如果 fsync 已完成,主线程直接写 AOF buf
3. 如果 fsync 未完成,检查上次刷盘时间
a). 上次刷盘时间在 2 秒内,主线程直接返回,不写 AOF buf
b). 上次刷盘时间在 2 秒外,主线程强制写 AOF buf
我不理解 3a 步骤,不写 AOF buf 那这个命令不就丢了么?
比如第 100ms 开始执行 fsync,第 101ms 收到新的写命令为 set a 123,不写 AOF buf,第 105ms 刷盘结束,那 set 命令不就丢了么
求大佬指教
正文完