缓存中的双写一致

1.4双写一致

概念:当修改了数据库中的数据后,也要修改缓存中的数据,保持数据库与缓存中数据的一致性

  • 读取操作:缓存命中,直接返回,未命中查询数据库,写入缓存,设置超时时间

  • 写入操作:延迟双删

延迟双删(注意点):

        1.先删除缓存还是先操作数据库

2.为什么要删除两次缓存
        保证在缓存中不会出现脏数据

缺点:而延时双删虽然极大可能的控制了脏数据的出现,但是还是会有少部分情况出现脏数据,因为延时的时间不确定,做不到强一致

解决方案:

       强一致性的, 采用Redisson提供的读写锁
        共享锁:读锁readLock,加锁之后,其他线程可以共享读操作排他锁:独占锁writeLock也叫,加锁之后阻塞其他线程读写操作

        允许延时一致的业务,采用异步通知
        存删除使用MQ中间中间件,更新数据之后,通知缓
        装为mysql的一个从节点,canal通过读取binlog数据更新缓存利用canal中间件,不需要修改业务代码,伪

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值