美文网首页
库存是先删缓存还是先改db

库存是先删缓存还是先改db

作者: MelodyOf流沙 | 来源:发表于2021-04-06 00:11 被阅读0次

    库存是先删缓存还是先改db

    先改db再淘汰缓存
    • 缓存失效
    • A读db数据是旧值
    • B改数据并淘汰缓存
    • A写入旧值到缓存中
      此种方案,发生的问题的条件比较苛刻,但也会出现此类问题
    先淘汰缓存再改db
    • B淘汰缓存
    • A读取缓存,没值,去读取旧值
    • B修改DB
    • A把旧值写到缓存中
      此种方案,只要有读取事件在B淘汰后修改成功前出现,则会出现严重的脏读问题,需要一直等到缓存失效才会解决问题
    延迟双删

    对于此问题,我们常用解决方案是延迟双删

    • 先删除缓存
    • 修改db
    • 休眠x ms再淘汰缓存
      休眠x的目的是为了在修改db时,让出现的读事件写缓存的过程执行完.
      为了防止淘汰缓存失败,还需要增加重试机制(mq实现)
      为了增加吞吐量,可以把休眠ms放在协程中实现
      读写分离主从情况下,休眠时间可以延长一点

    相关文章

      网友评论

          本文标题:库存是先删缓存还是先改db

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