noble4cc
V2EX  ›  Java

更新数据库后是直接更新缓存还是删除缓存?

  •  
  •   noble4cc · May 28, 2020 · 3977 views
    This topic created in 2357 days ago, the information mentioned may be changed or developed.

    各有什么优缺点呢?

    9 replies  •  2020-05-29 14:27:04 +08:00
    hangszhang
    hangszhang
    May 28, 2020
    1
    正确的做法好像是,更新数据库后, 延迟异步删除缓存(博客上看的...).
    goodboy95
    goodboy95
    May 29, 2020
    2
    我是删除党,毕竟项目并发不高,直接删了贼方便,不怕改的时候改错
    damai0419
    damai0419
    May 29, 2020
    3
    删除缓存 --> 更新数据库
    kiracyan
    kiracyan
    May 29, 2020
    4
    缓存更新策略有好几种 随便搜索都有详细介绍
    yiyi11
    yiyi11
    May 29, 2020 via Android
    5
    1.删除缓存 /缓存过期(复杂缓存值可能关联其他业务计算,不能简单的更新,为了维护方便,统一由读请求维护)
    2.更新数据库

    对于实时性要求较高的数据,需考虑高并发情况下的双写一致性。
    noble4cc
    noble4cc
    OP
    May 29, 2020
    7
    @hangszhang 关键是原因呀,不然不好忽悠别人
    yc8332
    yc8332
    May 29, 2020
    8
    这个要看是否有高并发?如果有要代码直接重建缓存,不然就会很多请求穿透到数据库。没啥请求的直接删除就行了
    jinzhongyuan
    jinzhongyuan
    May 29, 2020
    9
    @yiyi11 读请求维护缓存,更新接口驱逐缓存, 但是正常来说更新接口先更新 DB,再驱逐缓存比较好
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2424 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 04:54 · PVG 12:54 · LAX 20:54 · JFK 23:54
    ♥ Do have faith in what you're doing.