开发者社区 问答 正文

生产环境突然报云数据redis版获得不了链接

生产环境突然报如下错误,以前也报错过一次,重启java应用就好了,这次重启很多次都依旧,配置没改过:
org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
        at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:204)
        at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:348)
        at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:129)
        at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:92)
        at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:79)
        at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:194)
        at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:169)
        at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:91)
        at org.springframework.data.redis.core.DefaultValueOperations.setIfAbsent(DefaultValueOperations.java:216)
        at com.wnzx.framework.common.redis.RedisLock.lock(RedisLock.java:33)
        at com.wnzx.dcomputer.task.DaoMainExecutor$SumRunner.lambda$run$1(DaoMainExecutor.java:400)
        at com.wnzx.framework.common.slicetask.SliceTaskPullModeDoer.call(SliceTaskPullModeDoer.java:72)
        at com.wnzx.framework.common.slicetask.SliceTaskPullModeDoer.call(SliceTaskPullModeDoer.java:19)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

展开
收起
zcspin 2019-01-15 10:42:52 1260 分享 版权
1 条回答
写回答
取消 提交回答
  • 其实问题不是连接不了后端redis,而是无法从连接池中获得可用连接,虽然两者经常同时出现,但本质上不是同一回事。更精确的处理,最好看一下连接池的工作,并尝试手工运行与redis库直接连接的代码,看能否连接成功。也可以在命令行下redis-cli直接连接redis,以发现问题出现在哪个环节,以确认后端redis是否真的以任何方式都无法连接。重启服务器并不是解决问题的最好方法。
    2019-01-15 11:35:42
    赞同 1 展开评论