分布式缓存一致性问题方案

方案名称技术特点优点缺点适用场景说明
数据实时同步更新强一致性,更新数据库同时更新缓存,使用缓存工具和AOP实现数据一致性强,不会出现缓存雪崩问题代码耦合,运行期耦合 ,影响正常业务 ,增加一致网络开销银行适合写操作频繁的细粒度缓存数据,数据一致性要求比较高场景,如:银行业务,证券交易;不适合写操作较少粗粒度数据;
数据准实时更新准一致性,更新数据库后,异步更新缓存,使用AOP进行封装基于多线程或者MQ实现数据同步有较短延迟,与业务解耦,不影响正常业务,不会出现缓存雪崩问题有较短延迟,无法保证最终一致性,需要补偿机制比较优雅不适合写操作平凡并且数据一致性实时性要求严格的场景(较短不一致,写频繁导致mq消息剧增)
缓存失效机制弱一致性,基于缓存本身失效机制实现简单,与业务完美结合,不影响正常业务有一定延迟,存在缓存雪崩问题互联网大量使用不适合写操作平凡并且数据一致性实时性要求严格的场景,适合读多写少的互联网婵娟,能接受一定数据延时;如:电商业务,理财金融(收益第二天更新),社交类业务(点赞)等
任务调度更新最终一致性,采用任务调度框架,按照一定频率更新不影响正常业务不保证一致性,代码复杂度增大(么个value都要维护异步更新代码),容易堆积垃圾数据统计类适合复杂统计类数据缓存更新,对数据一致性实时性要求低的场景,如统计类数据,BI分析等

 

方案1:

 productDao.insert(product);

 redis.delete(productId);

方案2:

productDao.insert(product);

mq.sender(productId);

mq接收客户端收到消息后,从redis获取数据更新;

方案3:

redis.set(productId, expireTime); //例如过期3s, 但是存在缓存雪崩(缓存穿透到数据库)

请参考“缓存雪崩和缓存击穿”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琉璃梦境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值