2014-09-05 175 views
0

我使用redis作为我的spring缓存实现。而官方的医生说,我们应该配置高速缓存管理器这样的:Spring-data-redis:cacheManager配置问题

<!-- Old version --> 
<bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager" 
     c:template-ref="redisTemplate"> 

和正常工作时的版本jedis的= 2.0.0和版本弹簧数据redis的= 1.0.2.RELEASE的。

但是在更新的版本中(例如jedis = 2.5.2和spring-data-redis = 1.3.4.RELEASE),上面的配置不起作用。相反,它抛出一个异常,说“loadCaches不能返回一个空的集合”。 后来我交给它,并再次GOOGLE了它,现在的配置文件是这样的:

<!-- New Version --> 
<bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager" 
     c:template-ref="redisTemplate"> 
    <property name="cacheNames"> 
     <map> 
      <bean id="someid" class="someclass" p:name="somename"/> 
     </map> 
    </property> 
</bean> 

现在它不抱怨空的集合,而是别的东西约初始化。

所以这里有另一个2个问题:

  1. 里面的cacheNames财产,我看到别人都在用“清单”,“设置”和“地图”。有什么区别?
  2. 如何在里面配置bean?

我一直在苦苦挣扎着这个bean安装了几天..你能帮我解决吗?在此先感谢

回答

0

作为提示,请参阅org.springframework.cache.annotation.EnableCaching注释。

它内部讲述了CacheManager接口及其工作原理。

作为一个快速“开始行动”,您需要指定您想要使用的缓存的名称(例如,当您使用@CacheConfig(cacheNames='...')@Cacheable(value = '...')时,想法是您正在创建相关的逻辑分组“东西”要缓存,即:书籍,汽车,贷款等

在bookService的,你会使用类似@CacheConfig(cacheNames='Books')

希望帮助

0

我所面临的类似问题!关于使用Jedis和spring-data-redis。我发现的其中一个是spring-da ta-redis是非常具体的关于Jedis版本。对于我的情况,Spring-data-redis 1.5.0.RELEASE兼容Jedis 2.6.2

对于你的情况,作为参考下面的链接,查找编译依赖关系部分,你会发现1.3.4.RELEASEJedis 2.4.1兼容。我相信一旦你改变你的POM文件Jedis版本,你的问题就会解决。

http://mvnrepository.com/artifact/org.springframework.data/spring-data-redis/1.3.4.RELEASE