2014-09-05 165 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