V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
EDDYCJY
V2EX  ›  问与答

大家 缓存更新 都在用什么策略呢?

  •  
  •   EDDYCJY · 2017-05-29 11:04:46 +08:00 · 3346 次点击
    这是一个创建于 2740 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家有没有一些比较好的建议,最近想给公司做缓存更新,省得总是更新不及时。

    感谢!

    7 条回复    2017-05-29 18:00:32 +08:00
    lcorange
        1
    lcorange  
       2017-05-29 13:22:19 +08:00
    这篇耗子的博客可以借鉴下
    http://coolshell.cn/articles/17416.html

    我用的就是 先更新数据库,再让缓存失效。下一次缓存命中失败后再更新缓存
    killerv
        2
    killerv  
       2017-05-29 14:19:42 +08:00 via iPhone
    如果不要求实时生效,可以考虑缩短缓存时间,如果要做到实时生效,可以让缓存主动失效,或者直接覆盖缓存。
    EDDYCJY
        3
    EDDYCJY  
    OP
       2017-05-29 14:38:05 +08:00 via iPhone
    @killerv 是的 就是想问大家,主动失效或覆盖缓存大家是怎么做的。
    我觉得把缓存删除都放在后台每次编辑的时候删除,那每个板块都要加的话,很不好。
    EDDYCJY
        4
    EDDYCJY  
    OP
       2017-05-29 14:39:12 +08:00 via iPhone
    @lcorange 主要是想问问 后台数据更新后,前台的缓存什么姿势更新最好。
    lcorange
        5
    lcorange  
       2017-05-29 15:44:22 +08:00   ❤️ 1
    @EDDYCJY
    我这里是前台直接向后台请求,不缓存数据。
    后台收到请求后,先去 redis 里查看是否有缓存,有就直接返回,没有再去数据库中查找,找到后加入 redis
    缓存更新就是在更新之后,将 redis 中的对应缓存删除,等待下次查询请求时(也就是上面所说的)再把数据加进缓存
    EDDYCJY
        6
    EDDYCJY  
    OP
       2017-05-29 15:49:43 +08:00 via iPhone
    @lcorange 那我有个疑问,在后台各个板块加入各类的删除缓存键,不会导致代码耦合太高吗,或者出现过个一年,都没人记得了。
    lcorange
        7
    lcorange  
       2017-05-29 18:00:32 +08:00
    @EDDYCJY 我这里用的是 spring cache 配合 redis 来管理缓存,相关功能放到统一 service 下面,各个方法前面加上 cache 的注解,结构还是蛮清晰的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1098 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 118ms · UTC 19:24 · PVG 03:24 · LAX 11:24 · JFK 14:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.