2014-09-05 2 views
0

스프링 캐시 구현으로 redis를 사용하고 있습니다.Spring-data-redis : cacheManager 설정 문제

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

을 그리고 봄 - 데이터 - 레디 스 = 1.0.2.RELEASE의 경우 jedis 버전 = 2.0.0 및 버전을 잘 작동 : 그리고 공식 문서는 우리가 같이 캐시 관리자를 구성해야한다고 말했습니다.

그러나 최신 버전 (예 : jedis = 2.5.2 및 spring-data-redis = 1.3.4.RELEASE)에서는 위의 구성이 작동하지 않습니다. 대신, "loadCaches가 빈 Collection을 돌려 보내서는 안된다"는 예외를 던집니다. 그때 나는 그것을 언급하고 다시 인터넷 검색, 지금 구성 파일은 다음과 같이이다 :

<!-- 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> 

지금 비어 수집에 대해 불평하지 않지만, 초기화에 대해 뭔가. 나는 다른 사람들이 "목록", "설정"과 "지도"를 사용하는 참조 cacheNames 속성 내부

  1. :

    그래서 다른 여기에 2 개 질문이 있습니다. 차이점은 무엇입니까?

  2. 내부에서 bean을 구성하는 방법은 무엇입니까?

나는이 콩을 며칠 동안 고생하고있다. 그들에게 나를 도울 수 있니? 미리 감사드립니다.

답변

0

힌트는 org.springframework.cache.annotation.EnableCaching 주석을 참조하십시오.

내부에서는 CacheManager 인터페이스와 작동 원리에 대해 설명합니다.

빠른 'get get going'으로 사용하고자하는 캐시의 이름을 지정해야합니다 (예 : @CacheConfig(cacheNames='...') 또는 @Cacheable(value = '...')). 관련 아이디어의 논리적 그룹을 만드는 것이 좋습니다 '일'은, 즉 캐시하려면 다음 BookService에서 등

책, 자동차, 대출, 당신은 @CacheConfig(cacheNames='Books') 같은 것을 사용하는 것이 도움이

0

희망 나는 비슷한 문제를 직면합니다.! Jedis에서 spring-data-redis와 함께 사용하면, 내가 가진 발견 중 하나는 spring-da입니다. ta-redis는 Jedis 버전에 대해 특정입니다. 제 경우에는 스프링 데이터 redis 1.5.0.RELEASEJedis 2.6.2과 호환됩니다. 귀하의 경우를 들어

, 컴파일 의존성 부분을 찾아, 아래 링크를 참조하십시오, 당신은 1.3.4.RELEASE을 찾을 수는 Jedis 2.4.1와 호환됩니다. 나는 당신의 POM 파일 Jedis 버전을 변경하면 문제가 해결 될 것이라고 믿습니다.

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