2014-09-05 9 views
0

Я использую redis в качестве моей реализации кэш-памяти. И официальный документ говорит, что мы должны настроить менеджер кэша, как это: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 не должен возвращать пустую коллекцию». Тогда я назвал его и гугл его снова, и теперь конфигурационный файл что-то вроде этого:

<!-- 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 на пару дней. Не могли бы вы помочь мне? Заранее спасибо

ответ

0

Как подсказка, см. Аннотацию org.springframework.cache.annotation.EnableCaching.

Внутри он говорит о интерфейсе CacheManager и о том, как он работает.

Как быстро «вы идете», вам нужно указать имена кешей, которые вы хотите использовать (например, когда вы используете @CacheConfig(cacheNames='...') или @Cacheable(value = '...'). Идея состоит в том, что вы создаете логические группировки связанных 'вещи', чтобы быть в кэше, то есть: книги, автомобили, кредиты и т.д.

In A BookService, вы могли бы использовать что-то вроде @CacheConfig(cacheNames='Books')

Надежда, что помогает

0

Я столкнулся с аналогичной проблемой.! на использовании Jedis с пружинными данными-redis. Одно из обнаружений, которое у меня есть, - весна-да ta-redis очень специфический о версии Jedis. Для моего случая, Spring-data-redis 1.5.0.RELEASE совместим с Jedis 2.6.2.

В вашем случае, как и обратитесь к ссылке ниже, искать зависимости компиляции раздела, вы узнаете 1.3.4.RELEASE совместит с Jedis 2.4.1. Я полагаю, что ваша проблема будет решена после того, как вы измените версию POD-файла Jedis.

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