我有一个由两个Web服务器,两个Redis缓存和一个后端存储组成的应用程序。两个Web服务器和两个Redis缓存位于西海岸和东海岸,以优化性能。到目前为止,我已经能够连接到我的第一个缓存,从我的Web服务器到我的后端存储。但我正在寻找一种使用Spring将数据推送到两个Redis缓存的方法。我已经配置了两个RedisManagers,如下所示。Spring Data Store Redis - 使用多个缓存
@Bean(name="CacheManager1")
public RedisCacheManager cacheManager() {
RedisCacheManager redisCacheManager = new RedisCacheManager(redisTemplate());
redisCacheManager.setTransactionAware(true);
redisCacheManager.setLoadRemoteCachesOnStartup(true);
redisCacheManager.setUsePrefix(true);
return redisCacheManager;
}
@Bean(name="CacheManager2")
public RedisCacheManager cacheManager2() {
RedisCacheManager redisCacheManager = new RedisCacheManager(redisTemplate2());
redisCacheManager.setTransactionAware(true);
redisCacheManager.setLoadRemoteCachesOnStartup(true);
redisCacheManager.setUsePrefix(true);
return redisCacheManager;
}
现在我已经尝试了一些随机的方式缓存到这两个地方,但这种特别的方式与“可缓存是不是重复标注”
@Cacheable(cacheManager = "CacheManager1", value = "activityProfile", key = "#id")
@Cacheable(cacheManager = "CacheManager2", value = "activityProfile", key = "#id")
public ActivityProfile findActivityProfile(String id) {
return activityProfileRepository.findOne(id);
}
有没有使用任何简单的方法失败春天呢?
如何配置一个CacheResolver,它将返回一个包含来自这两个缓存的列表?没有尝试过,但可以工作。请参阅示例[此处](https://jira.spring.io/browse/DATAREDIS-391?focusedCommentId=114319&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-114319) – eis
您可以创建可能需要一系列cachemanagers的注释 –
@ ObiWan-PallavJha我对此感兴趣......但是我对注释的体验是有限的。我开始创建新的注释,并让我的IDE为我自动生成一些项目。但是我不确定在哪里去实现逻辑,例如在set上设置两个缓存中的值。我开始在网上搜索有关如何制作注释的指南,但只是想知道您是否知道任何特别优秀的指南 –