【Redis异常】redis.clients.jedis.exceptions.JedisConnectionException: Could not get a res
异常描述:redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the poolat redis.clients.util.Pool.getResource(Pool.java:22)at com.derbysoft.jredis.longkeytest.BorrowObject
异常描述:
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:22)
at com.derbysoft.jredis.longkeytest.BorrowObject.run(BorrowObject.java:22)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1134)
at redis.clients.util.Pool.getResource(Pool.java:20)
... 2 more
产生此错误的原因通常是:
一、Redis没有启动
我自己遇到一次这样的问题。汗!
驱动Redis:
cd ~/envs/redis
//启动服务
bin/redis-server conf/redis.conf
二、由于防火墙原因无法连接到Redis
1、服务器防火墙入站规则。
2、访问Redis的应用程序所在主机的出站(端口)规则。
问题出现场景:这个错误会不经意的出现之前打开了防火墙,可是长时间待机,最后开发时候唤醒服务时,会出现防火墙启动,导致客户机无法链接服务器。
解决:
(1)
//关闭防火墙(不推荐,只适合开发环境使用)
systemctl stop firewalld.service
(2)
//开启特定端口(6379)
1>查看哪些端口被打开 netstat -anp | grep 6379
2>关闭端口号:
/sbin/iptables -I INPUT -p tcp --dport 6379-j DROP
3>打开端口号:
/sbin/iptables -I INPUT -p tcp --dport 6379-j ACCEPT
三、IP地址或端口错误
四、Jedis 对象用完以后,要释放掉,不让会一直占用,所以会出现无法获取新的资源。
五、Spring Boot项目,缺少依赖
如果使用Redis与Spring Boot,也会抛出此异常。
如果你使用的是Spring Boot,那么Redis的依赖是不够的,
您还需要从redis.io手动下载并安装Redis,然后将其从终端运行
更多推荐
所有评论(0)