redis延迟双删策略

最近在看面试题,看到了redis这块,讲redis如何与数据库保持一致性,其中最有效的方案就是延迟双删策略。

我用通俗易懂的话描述出来,适合大部分小白了解。

参考文献:数据一致性:双删为什么要延时?_延时双删为什么要延时-CSDN博客

一、第一次删除的原因

很多人觉得第一次删除没有必要,为啥不可以更新完数据库后,再进行删除,直接就是最新的数据了吗?

答:第一次删除的作用在于,可以让别的事务获取到最新的数据。比如:有其他事务已经更新了数据,但是还未来得及进行删除缓存(正在进行延时删除的等待中),那么你进行的第一次删除,就可以将其他事务提交的最新数据更新到缓存上,保证其他地方可以获取此时的最新数据

二、为何第二次删除要延时

答:假如第一个事务更新数据库还未提交的时候,恰巧第二个事务正在查询缓存,发现缓存没有,便去读取数据库(旧的数据),然后打算更新缓存。但是,第一个事务此时刚好提交了数据,假如我们不延时删除,立马执行删除缓存操作,则第二个事务在第一个事务删除缓存后,再进行更新缓存操作,那么缓存仍然还是旧数据。

因此我们选择延时删除策略,目的是为了使其他事务将更新缓存的操作都进行完,这个时候我们再进行删除,下次更新缓存的时候就一定是最新的数据了。

小结:

当面试问道redis和数据库保持一致性的问题时,也可以答延迟双删策略。

------------------------------------------------------------------------------------------------------------

我会用很多通俗易懂的话术描述知识点,让更多人能看懂这些技术原理,关注我,每时每刻都会更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值