【发布时间】:2020-03-28 05:30:32
【问题描述】:
我正在使用带有 CacheManager 和 Cacheable 的 Spring 缓存来缓存 10 个不同应用程序中同一张表中的相同数据。实现时的假设是,我们正在缓存的这些数据是元数据,不应更改。但是,他们正在更改这些数据,并且缓存永远不会被清除。
现在的要求是用 2 个大请求同时清除所有 10 个应用程序的缓存。
- 每当表从 mySQL Work Bench 上的直接 INSERT 语句更改时 应刷新所有应用程序缓存。我正在使用休眠和 Spring,但请记住插入发生在 缓存数据的应用程序。
- 如果我公开一个 API 来刷新缓存,它应该是 1 个将刷新的 API 所有 10 个应用程序。目前,缓存是私有的,不会暴露在应用程序之外。
是否有一些我可以实现的缓存机制,以便所有 10 个应用程序都使用相同的底层缓存。因此,如果我刷新 1,那么所有应用程序都将获得更新的数据。
我目前认为,并从研究中发现,将触发器放入数据库中以执行 Java 代码是一个坏主意。这些要求是不可能实现的吗?
缓存管理器:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/cache/CacheManager.html
【问题讨论】: