我有 redis cluster with master, slave and 3 sentinel servers . 主服务器和从服务器映射到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时,JedisConnectionFactory的 I see localhost instead of cluster information under hostName property .
另外,我在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依赖 .
使用Spring启动应用程序集成redis集群时我缺少什么?
1 回答
所需的只是在RedisClusterConfiguration中设置集群节点的初始集合,并将其提供给JedisConnectionFactory .