PEPEXXX
3.93D
V2EX  ›  Java

请教一下大家,如何管理 springboot 中的缓存?

  •  
  •   PEPEXXX ·
    PRO
    · Apr 6, 2019 · 3663 views
    This topic created in 2665 days ago, the information mentioned may be changed or developed.

    接口采用 springboot+jpa+redis 的技术栈,使用 restfulapi 进行前后端交互。比如前端获取商品列表,我可以用 @Cachable 把结果缓存在 redis 里面,然而,修改商品信息是另一个同事(老板)做的,他采用的是.NET 相关的技术栈。那么问题来了,他在后台改了商品信息之后,缓存信息怎么更新。。。头疼

    9 replies    2019-04-06 20:06:20 +08:00
    lovedebug
        1
    lovedebug  
       Apr 6, 2019 via Android
    redis 订阅通知机制了解下。谁改了数据库负责通知所有订阅者刷新缓存
    zhch602
        2
    zhch602  
       Apr 6, 2019 via Android
    上消息队列
    serical
        3
    serical  
       Apr 6, 2019 via Android
    可以把时间设置短点,或者让.net 自己拼出 redis 的 key 来 修改了商品就删除缓存呗
    xuanbg
        4
    xuanbg  
       Apr 6, 2019
    大家都用同一个 Redis,Java 或者 C#的应用有关系吗?各自管好自己的数据更新就好了。
    jimrok
        5
    jimrok  
       Apr 6, 2019
    把修改商品的功能做成服务,用 RPC。
    yidinghe
        6
    yidinghe  
    PRO
       Apr 6, 2019
    最简单的办法当然是 .net 那边同步更新缓存,或者直接删除缓存然后你去更新。而如果 .net 那边不接触 Redis 的话,那就改用消息队列,消息队列在将来还能解决更多异构技术栈之间通信的问题。你们先约定一个消息格式,然后各自开发。
    rockyou12
        7
    rockyou12  
       Apr 6, 2019
    你缓存都在 redis 上了,它修改后把 redis 上的对应的缓存删了就行了。缓存更新,一般是有人去查的时候才更新 redis 的,不用手动在修改数据库数据的时候去修改缓存。
    dengtongcai
        8
    dengtongcai  
       Apr 6, 2019 via iPhone
    改动后,要么刷新缓存,要么删除缓存,反正得触发一下。你也可以使用 canal 这种同步 mysql 改动到缓存
    limuyan44
        9
    limuyan44  
       Apr 6, 2019 via Android
    删缓存,他要做不了你就搞个服务给他调,最简单的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4882 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 01:08 · PVG 09:08 · LAX 18:08 · JFK 21:08
    ♥ Do have faith in what you're doing.