如何理解先删除缓存还是先修改数据库。

     针对这个问题,其实反过来更好理解,即“先删除缓存还是先修改数据库能保证数据一致”变为“数据不一致的条件是什么”,好,现在就经过第一步转换了,接下来就解决这个问题。

     数据不一致其实就是在经过缓存删除和数据库修改变化后缓存中是旧数据,数据库是新数据。更新线程有两操作1.删除缓存,2.修改数据库。查找线程也有两个操作1.读取数据库数据,2.写入缓存。要想实现变化后缓存中是旧数据有两个条件1.读取数据库数据必须在修改前才能读到旧数据,2.写入缓存必须在删除缓存后写入才能保证写入旧数据不被删除。

    接下来看如下图(从上到下是时间线)

  可以看到如果左边要满足数据不一致情况的话读数据库、写缓存必须经过更新数据库和删除缓存时间跨度,而更新数据库时间是远大于写入缓存的时间的,所以左边不容易发送数据不一致情况。右边因为发生数据不一致情况不用经过更新数据库时间跨度,所以发生数据不一致概率很大,所以采用左边的方案好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值