接口采用 springboot+jpa+redis 的技术栈,使用 restfulapi 进行前后端交互。比如前端获取商品列表,我可以用 @Cachable 把结果缓存在 redis 里面,然而,修改商品信息是另一个同事(老板)做的,他采用的是.NET 相关的技术栈。那么问题来了,他在后台改了商品信息之后,缓存信息怎么更新。。。头疼
1
lovedebug 2019-04-06 15:18:03 +08:00 via Android
redis 订阅通知机制了解下。谁改了数据库负责通知所有订阅者刷新缓存
|
2
zhch602 2019-04-06 15:18:53 +08:00 via Android
上消息队列
|
4
xuanbg 2019-04-06 18:05:35 +08:00
大家都用同一个 Redis,Java 或者 C#的应用有关系吗?各自管好自己的数据更新就好了。
|
5
jimrok 2019-04-06 18:13:19 +08:00
把修改商品的功能做成服务,用 RPC。
|
6
yidinghe 2019-04-06 18:24:50 +08:00
最简单的办法当然是 .net 那边同步更新缓存,或者直接删除缓存然后你去更新。而如果 .net 那边不接触 Redis 的话,那就改用消息队列,消息队列在将来还能解决更多异构技术栈之间通信的问题。你们先约定一个消息格式,然后各自开发。
|
7
rockyou12 2019-04-06 18:38:07 +08:00
你缓存都在 redis 上了,它修改后把 redis 上的对应的缓存删了就行了。缓存更新,一般是有人去查的时候才更新 redis 的,不用手动在修改数据库数据的时候去修改缓存。
|
8
dengtongcai 2019-04-06 18:57:18 +08:00 via iPhone
改动后,要么刷新缓存,要么删除缓存,反正得触发一下。你也可以使用 canal 这种同步 mysql 改动到缓存
|
9
limuyan44 2019-04-06 20:06:20 +08:00 via Android
删缓存,他要做不了你就搞个服务给他调,最简单的
|