V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
noble4cc
V2EX  ›  Java

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

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

    各有什么优缺点呢?

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

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