【发布时间】:2017-06-14 14:04:24
【问题描述】:
我有一个 redis 集群,其中包含主服务器、从属服务器和 3 个哨兵服务器。 master 和 slave 映射到 dns 名称为 node1-redis-dev.com,node2-redis-dev.com。 redis服务器版本为2.8
我在 application.properties 文件中包含以下内容。
spring.redis.cluster.nodes=node1-redis-dev.com:6379,node2-redis-dev.com:6379
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
spring.redis.pool.max-active=-1
spring.redis.pool.max-wait=-1
但是当我检查 StringRedisTemplate 时,我看到的是 localhost 而不是 JedisConnectionFactory 的 hostName 属性下的集群信息。
我还在 JedisPool 的 creationStackTrace 属性中看到了异常。
java.lang.Exception
at org.apache.commons.pool2.impl.BaseGenericObjectPool.<init>(BaseGenericObjectPool.java:139)
at org.apache.commons.pool2.impl.GenericObjectPool.<init>(GenericObjectPool.java:107)
at redis.clients.util.Pool.initPool(Pool.java:43)
at redis.clients.util.Pool.<init>(Pool.java:31)
at redis.clients.jedis.JedisPool.<init>(JedisPool.java:80)
at redis.clients.jedis.JedisPool.<init>(JedisPool.java:74)
at redis.clients.jedis.JedisPool.<init>(JedisPool.java:55)
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createRedisPool(JedisConnectionFactory.java:228)
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createPool(JedisConnectionFactory.java:204)
CasheRepository 类如下所示,
@Component
@CacheConfig(cacheNames = "enroll", cacheManager = "enrollCM")
public class EnrollCashRepository {
@Autowired
private StringRedisTemplate stringRedisTemplate;
//Other methods
}
我正在使用带有 spring-boot-starter-redis 1.2.7 的 spring boot 1.3.4 导入 jedis 2.7.3 依赖项。
将 redis 集群与 Spring boot 应用程序集成缺少什么?
【问题讨论】:
-
你是如何配置缓存的?
-
@Arpit 就像在属性文件中配置单个节点时一样,集群也在其中配置。无其他特殊配置
-
你能显示你的配置文件吗?
-
Redis Sentinel 不是 Redis 集群。
-
@Arpit 它是我在问题中发布的 application.properties
标签: java spring caching spring-boot redis