cache aside模式的中针对更新流程的一些疑问

来源:4-15 保证数据一致性的多种策略及优缺点(一)

慕斯卡3278568

2023-03-12

老师您好,在cache aside模式中,针对更新流程是先更新数据库,然后在删除缓存。请问为什么不是直接更新缓存,而是清楚缓存了?因为如果是清楚缓存,那么如果有大量并发过来的时候,发现缓存是空的,势必会对数据库造成压力,但是直接更新就不会有上面这个问题,但是最终走的是删除而不是更新,是因为更新会带来其他的问题么?期待您的解答,谢谢

写回答

1回答

大能老师

2023-03-17

先更新数据库,然后在删除缓存是为了保证缓存一致性的问题。

如果先更新数据库后更新缓存会出现一下问题:

//img.mukewang.com/szimg/6413c584095311cf26101368.jpg

最后缓存数据库不一致,后续课程会详细进行解释,请同学深入后面课程继续学习哈,然后针对大并发对缓存造成的问题,课程可以相应讲解,请同学继续学习,有疑问随时交流哈

0
1
慕斯卡3278568
了解了,谢谢老师,后面的课程确实是提到了,数据库和redis的操作不是原子性的,就是在更新数据库后,由于GC等因素,导致对redis的操作可能会有延迟,所以存在把脏数据更新到redis的可能性。谢谢老师详细的解答
2023-03-18
共1条回复

Java分布式架构设计与开发实战

项目贯穿式讲解,真正将理论与实战相结合

325 学习 · 74 问题

查看课程