保证数据库和缓存的一致性

方案1:同步删除

核心流程:

先更新数据库数据

然后删除缓存数据

存在的问题:

1)删除缓存失败存在脏数据

2)难以收拢所有更新数据库入口
直接在数据库中修改,缓存不会改变


方案2:延迟双删

核心流程:

删除缓存数据

更新数据库数据

等待一小段时间

再次删除缓存数据

存在的问题:

1)延迟时间难以确认

到底是延迟一秒或者是几秒,这个其实很难确认,你总不能延迟几分钟吧,因为你如果延迟几分钟,那这几分钟可能就存在脏数据了,所以这个时间很难确定。

2)无法绝对保障数据的一致性


方案3:异步监听binlog删除 + 重试

核心流程:

更新数据库

监听binlog删除缓存

缓存删除失败则通过MQ不断重试,直至删除成功
整体流程图如下:
在这里插入图片描述
参考如何保障缓存和数据库的一致性(超详细案例)数据库缓存一致性解决方案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值