springboot连接到redis池

时间:2015-05-05 04:16:04

标签: redis spring-boot

我使用springboot和redis构建REST api。使用提供的@Autowired StringRedisTemplate,我可以轻松连接到我的本地redis。但是在生产中我们使用redis池,所以在application.properties文件中我指定了redis池:

spring.redis.sentinel.master=mymaster,mymaster_02
spring.redis.sentinel.nodes=mel-01:26379,mel-02:26379,mel-03:26379

java代码:

 @Autowired
    private RedisTemplate<String, String> redis;

然后当我运行mvn spring-boot:run时,它失败了:

Caused by: java.lang.NullPointerException
    at redis.clients.jedis.JedisSentinelPool.toHostAndPort(JedisSentinelPool.java:159)
    at redis.clients.jedis.JedisSentinelPool.initSentinels(JedisSentinelPool.java:122)
    at redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:73)
    at redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:49)
    at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createRedisSentinelPool(JedisConnectionFactory.java:193)
    at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createPool(JedisConnectionFactory.java:180)
    at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.afterPropertiesSet(JedisConnectionFactory.java:173)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)

更新: 挖掘更多代码并发现springboot无法处理多个主人:

spring.redis.sentinel.master=mymaster,mymaster_02

我们的redis群集是分片的,总共4个节点,数据在节点1,2和节点3之间分割.4。节点2是节点1的从属节点,节点4是节点3的从属节点。在我们的例子中,spring boot工作与redis一点都没?谢谢!

0 个答案:

没有答案