字节面试题:如何保证缓存和数据库的一致性

方案分析

更新缓存策略方式常见的有下面几种:

  1. 先更新缓存,再更新数据库
  2. 先更新数据库,再更新缓存
  3. 先删除缓存,再更新数据库
  4. 先更新数据库,再删除缓存

下面一一介绍!

方案一:更新缓存,更新数据库

这种方式可轻易排除,因为如果先更新缓存成功,但是数据库更新失败,则肯定会造成数据不一致。

方案二:更新数据库,更新缓存

这种缓存更新策略俗称双写,存在问题是:并发更新数据库场景下,会将脏数据刷到缓存

updateDB();updateRedis();

举例:如果在两个操作之间数据库和缓存又被后面请求修改,此时再去更新缓存已经是过期数据了。

 

方案三:删除缓存,更新数据库

存在问题:更新数据库之前,若有查询请求,会将脏数据刷到缓存

deleteRedis();updateDB();

举例:如果在两个操作之间发生了数据查询,那么会有旧数据放入缓存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值