V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
noble4cc
V2EX  ›  Java

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

  •  
  •   noble4cc · 2020-05-28 23:19:31 +08:00 · 2952 次点击
    这是一个创建于 1427 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各有什么优缺点呢?

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

    对于实时性要求较高的数据,需考虑高并发情况下的双写一致性。
    ilumer
        6
    ilumer  
       2020-05-29 10:58:25 +08:00
    noble4cc
        7
    noble4cc  
    OP
       2020-05-29 11:05:37 +08:00
    @hangszhang 关键是原因呀,不然不好忽悠别人
    yc8332
        8
    yc8332  
       2020-05-29 14:03:05 +08:00
    这个要看是否有高并发?如果有要代码直接重建缓存,不然就会很多请求穿透到数据库。没啥请求的直接删除就行了
    jinzhongyuan
        9
    jinzhongyuan  
       2020-05-29 14:27:04 +08:00
    @yiyi11 读请求维护缓存,更新接口驱逐缓存, 但是正常来说更新接口先更新 DB,再驱逐缓存比较好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3590 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:57 · PVG 12:57 · LAX 21:57 · JFK 00:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.