1

我试图在我的 Spring Boot 应用程序中为不同类型的对象提供两种缓存实现。我想根据该方法将某些对象存储在 redis 缓存中,而将其他对象存储在 guava 缓存中。每当我实现两个扩展 CachingConfigurerSupport 的类时,我都会收到一个错误,即该类只允许一个实例。谁能建议我怎么做?

4

2 回答 2

0

你可以像这样使用 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")
            }
    )

但我不知道如何更新缓存级联。希望能帮助到你。

于 2016-01-06T12:02:58.170 回答
0

以下博客展示了不错的实现。

于 2019-05-15T07:25:19.243 回答