数据库和缓存一致性问题

一般来说我们的业务场景是把Redis作为缓存来用,而把关系型数据库作为持久化来用,那么当数据修改时就存在数据一致性的问题。而解决这种一致性问题主要有两种模式:双写模式和失效模式。

  • 双写模式
    在这里插入图片描述
    从上图可知,由于服务器存在网络分区问题(网络闪断、服务性能差异、CPU、内存等各种因素),存在写缓存不一致形成了短暂的脏数据。另外,可能存在更新逻辑比较复杂,如果再用复杂的逻辑去更新缓存得不偿失,因此在这种情况下双写模式并不是很合适。

  • 失效模式
    在这里插入图片描述

此模式相比复杂修改时要好一些,但同样存在缓存不一致的情况。

其实不管上面哪种模式都存在一些问题,但好在的是由于缓存只作为临时存储,一般来说可以容忍短暂的不一致性。但如果真的很在意一致性问题,可以采用分布式锁来控制;其次,如果数据更新

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付 39.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值