并发环境下,先操作数据库还是先操作缓存?

在分布式系统中,面对写操作时,应当先更新数据库再操作缓存以避免数据不一致。本文探讨了五种缓存维护方案,包括直接删除缓存、双写策略、先写数据库后删缓存、利用binlog异步淘汰缓存以及处理主从数据库同步延迟的问题,最终推荐先更新数据库,再删除缓存,并利用binlog确保数据一致性。
摘要由CSDN通过智能技术生成

前言

在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。

(想自学习编程的小伙伴请搜索圈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发起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值