缓存与数据库的操作时序,不管是《Cache Aside Pattern》中的方案,还是《究竟先操作缓存,还是数据库?》中的方案,都会遇到缓存与数据库不一致的问题。今天聊聊这个问题。
一、数据库主从不一致
先回顾下,无缓存时,数据库主从不一致问题。

如上图,发生的场景是,写后立刻读:
(1)主库一个写请求(主从没同步完成)
(2)从库接着一个读请求,读到了旧数据
(3)最后,主从同步完成
导致的结果是:主动同步完成之前,会读取到旧数据。
可以看到,主从不一致的影响时间很短,在主从同步完成后,就会读到新数据。
二、缓存与数据库不一致
再看,引入缓存后,缓存和数据库不一致问题。

如上图,发生的场景也是,写后立刻读:
(1+2)先一个写请求,淘汰缓存,写数据库
(3+4+5)接着立刻一个读请求,读缓存,cache miss,读从库,写缓存放入数据,以便后续的读能够
继续阅读与本文标签相同的文章
上一篇 :
Cache Aside Pattern
下一篇 :
InnoDB行锁,如何锁住一条不存在的记录?
-
挖坑,InnoDB的七种锁
2026-05-21栏目: 教程
-
Disruptor源码解析
2026-05-21栏目: 教程
-
Dubbo在Service Mesh下的思考和方案
2026-05-21栏目: 教程
-
InnoDB,能将数据存储在DVD里?
2026-05-21栏目: 教程
-
InnoDB并发如此高,原因竟然在这?
2026-05-21栏目: 教程
