我正在尝试在春季启动应用程序中为不同类型的对象实现两种Cache。我想将某些对象存储在redis缓存中,而其他对象则基于该方法存储在guava缓存中。每当我实现两个扩展CachingConfigurerSupport的caless时,我都会得到一个错误,即此类只允许有一个实例。有人能建议我怎么做吗?
您可以像这样使用CompositeCacheManager,
CompositeCacheManager compositeCacheManager = new CompositeCacheManager(
ehCacheCacheManager(),
redisCacheManager());
使用缓存时可以指定cacheManage。
@Cacheable(value = "firstCache", key = "#word", cacheManager = "ehCacheCacheManager")
或
@Caching(
cacheable = {
@Cacheable(value = "firstCache", key = "#word", cacheManager = "ehCacheCacheManager"),
@Cacheable(value = "extendInfo", key = "#word", cacheManager = "redisCacheManager")
}
)
但我不知道如何更新缓存级联。希望能有所帮助。
下面的博客展示了不错的实现。