前言
在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。
(想自学习编程的小伙伴请搜索圈T社区,更多行业相关资讯更有行业相关免费视频教程。完全免费哦!)
缓存维护方案一
假设有一写(线程A)一读(线程B)操作,先操作缓存,在操作数据库。,如下流程图所示:
1)线程A发起一个写操作,第一步del cache
2)线程A第二步写入新数据到DB
3)线程B发起一个读操作,cache miss,
4)线程B从DB获取最新数据
5)请求B同时set cache
**这样看,没啥问题。**我们再看第二个流程图,如下:
1)线程A发起一个写操作,第一步del cache
2)此时线程B发起