本文主要讨论这么几个问题:
(1)数据库主从延时为何会导致缓存数据不一致
(2)优化思路与方案
一、需求缘起
上一篇《缓存架构设计细节二三事》中有一个小优化点,在只有主库时,通过“串行化”的思路可以解决缓存与数据库中数据不一致。引发大家热烈讨论的点是“在主从同步,读写分离的数据库架构下,有可能出现脏数据入缓存的情况,此时串行化方案不再适用了”,这就是本文要讨论的主题。
二、为什么数据会不一致
为什么会读到脏数据,有这么几种情况:
(1)单库情况下,服务层的并发读写,缓存与数据库的操作交叉进行
虽然只有一个DB,在上述诡异异常时序下,也可能脏数据入缓存:
1)请求A发起一个写操作,第一步淘汰了cache,然后这个请求因为各种原因在服务层卡住了(进行大量的业务逻辑计算,例如计算了1秒钟),如上图步骤1
2)请求B发起一个读操作,读cache,cache
继续阅读与本文标签相同的文章
上一篇 :
缓存与数据库一致性保证
下一篇 :
线程数究竟设多少合理
-
wordpress中的slug是指的什么?
2026-05-20栏目: 教程
-
必应SEO:从Bing获得更多本地流量的8个技巧
2026-05-20栏目: 教程
-
58到家通用实时消息平台架构细节(Qcon2016)
2026-05-20栏目: 教程
-
秒杀系统架构优化思路
2026-05-20栏目: 教程
-
线程数究竟设多少合理
2026-05-20栏目: 教程
