首页 文章

Spring-data-redis:cacheManager配置问题

提问于
浏览
0

我使用redis作为我的Spring缓存实现 . 官方文档说我们应该像这样配置缓存管理器:

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

当jedis的版本= 2.0.0和spring-data-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>

现在它不会抱怨空集合,而是初始化的其他内容 .

所以这里还有另外两个问题:

  • 在cacheNames属性中,我看到其他人正在使用"list","set"和"map" . 有什么区别?

  • 如何在里面配置bean?

我已经在这个bean设置上苦苦挣扎了几天..你能帮帮我一下吗?提前致谢

2 回答

  • 0

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

    在里面它讨论了 CacheManager 接口及其工作原理 .

    快速'get you going',您需要指定要使用的缓存的名称(例如,当您使用 @CacheConfig(cacheNames='...')@Cacheable(value = '...') 时 . 想法是您创建要缓存的相关'things'的逻辑分组,即:Books ,汽车,贷款等

    在BookService中,您将使用类似 @CacheConfig(cacheNames='Books') 的内容 .

    希望有所帮助!

  • 0

    我在使用jedis和spring-data-redis时遇到了类似的问题 . 我发现的一个发现是,spring-data-redis对于Jedis版本来说非常 specific . 对于我的情况, Spring-data-redis 1.5.0.RELEASEJedis 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

相关问题