文章插图
流程说明:
- 线程1写入数据库成功,由于网络卡顿原因,导致删除缓存数据失败
- 线程2读取数据,读取为缓存中的数据,但是当网络恢复正常后,缓存中的数据会被删除,所以可能会存在短暂的数据不一致 。
数据库和缓存一致性解决方案缓存延迟双删缓存延迟双删针对第三种场景的优化,具体的流程如下:
文章插图
说明:先删除缓存,在更新数据库,确保数据库事务提交成功,然后休眠一段时间在删除缓存 。我们都知道第三种情况是因为网络卡顿导致数据库更新失败,当网络恢复正常后,我们在执行更新数据库操作,然后再删除缓存,那么出现数据不一致的情况也就是在休眠的这短暂的时间内 。
删除缓存失败如何处理删除缓存重试机制
文章插图
需要删除失败的key存入消息队列中,采用异步的方式来进行删除,如果删除失败的次数已经超过了最大次数,发送警告邮件,需要人工介入解决 。
总结本文对于数据库和缓存的一致性进行详细的讲解,由于数据库和缓存一致性的场景比较复杂,每种方案都无法保证绝对的一致性,根据CAP理论我们知道缓存系统使用场景为非强一致性的场景,符合CAP中的AP,如有疑问请及时反馈 。
作者:剑圣无痕
链接:
https://juejin.cn/post/7126188464713760776
推荐阅读
- 2022 年了,MPP 还是当今数据库主流架构吗?
- mysql服务如何查看是否启动?
- |职场人该如何提高自己的能力?
- 三四十岁如何摆脱“大妈”标签?学习日杂的穿衣搭配,高级有品味
- 如何知道自己有月子病
- 交警指导您如何正确规范停车 如何停车
- 如何选择合适自己的养发馆加盟品牌 养发馆加盟连锁
- |你该如何调动其他同事来提拔你或者提拔别人?
- 进口保健品如何选择 进口保健品排行榜
- 怎么鉴别和避开地沟油 如何辨别地沟油