缓存与数据库的双写一致性( 三 )


本文插图
首先是缓存要失效 , 然后读请求、写请求并发的执行 , 并且读请求要比写请求后执行完 。 为啥说概率不大呢 , 首先在实际生产中 , 读请求一般都要比写请求快得多 。 除此之外 , 读请求去 DB 请求数据的时间一定要早于写请求 , 并且写缓存的时间还要一定晚于写请求 , 比起最开始的那种情况来说 , 条件已经是非常的严格了 。
如果完全不能容忍 , 可以通过 2PC 的模式去保证数据的一致性 , 也可以通过将请求串行化的方式来解决 , 但这样的代价就是会牺牲并发量 。
其实还有其他的几种方案 , 比如 Read Throught Pattern 、Write Through Pattern、Write Around、Write Behind Caching Pattern 等等 。 但是这些相对于 Cache Aside Pattern 来说比较简单 , 可以自己去了解一下就好 。
好了以上就是本篇博客的全部内容了 , 欢迎微信搜索关注【SH的全栈笔记】 , 回复【队列】获取MQ学习资料 , 包含基础概念解析和RocketMQ详细的源码解析 , 持续更新中 。
【缓存与数据库的双写一致性】如果你觉得这篇文章对你有帮助 , 还麻烦点个赞 , 关个注 , 分个享 , 留个言