美文网首页
缓存一致性-Cache Aside Pattern+延迟双删

缓存一致性-Cache Aside Pattern+延迟双删

作者: 霡霂976447044 | 来源:发表于2021-10-24 23:55 被阅读0次

    原文视频:https://www.bilibili.com/video/BV1aF411e7ur
    此模式下能基本保持一致性(存在短时间不一致),如果要强一致性需要使用分布式锁(但是并发不高)

    不使用这种CAP模式,我们一般简单的缓存实现是在POST/PUT的之后,将Redis的缓存更新为对应的值,在数据GET的情况下,查询缓存数据,没有再从数据库得到再写入缓存。 但是这种模式并发下,可能会导致缓存和数据库不一致的情况。

    CAP模式的意思是,对数据POST/PUT的时候,更新数据库之后直接把旧的缓存删除掉,不再做任何操作。在GET数据的时候,发现没有数据,就从数据库拿,再更新到缓存。我们会发现,会有极端情况导致GET得到了缓存的数据和实际库的数据不一样的情况

    image.png image.png

    这两种情况下的都会出现不一致,第二种更为严重

    可以再通过延迟删除缓存,再次缩短这个时间窗口。

    image.png

    假设在延迟删除(2s)期间,有人请求过来,还是会得到更新之前的数据,只不过过了2s之后,这个缓存就会被删除,业务上来说也基本不影响。这个2S就是可能数据不一致的出现时间。

    相关文章

      网友评论

          本文标题:缓存一致性-Cache Aside Pattern+延迟双删

          本文链接:https://www.haomeiwen.com/subject/qoadaltx.html