redis.clients.jedis.exceptions.JedisConnectionException Could not get a resource from the pool
在度娘上查了好久的资料也没有解决,最终把问题定位到了集群的身上,果然...集群中有个节点晾凉了.
好了开始解决问题吧(仅限于集群宕机或者与预期配置不符检测)
怎么确认我们的集群有问题呢?
1.连接你的任意一个集群节点客户端工具 ./redis-cli -p ip -c port -c
这么里边多多输入一些内容进行测试,看看会不会报如下的这个错误(CRC16算法会自动进行slot的匹配,简单的测试就是set a a set b b...)
127.0.0.1:8001> set nima nia
-> Redirected to slot [16259] located at :0
Could not connect to Redis at :0: Name or service not known
Could not connect to Redis at :0: Name or service not known
not connected>
2.通过redis-itrib.rb进行验证(默认这个文件是在你解压redis的src目录下面)
./redis-3.0.0/src/redis-trib.rb check IP:8001|more 8001意思是你的集群的任意一个端口|more 可以裂解为无限制它自动去扫描
看看这里面
是否跟你配置的集群信息是否相符,是否有没有连接成功的,缺少的话就证明你集群配置有问题了...
如果是集群配置有问题请往下看
解决方案:
1.把每个节点redis里面的nodes.conf文件全部删除,只要看到这个在你集群文件里,你就rm -rf 干掉就ok了
2.重新配置集群 例如我们的一个6个redis 这里不过多讲解,请移居度娘
./redis-trib.rb create --replicas 1 169.254.18.18:8001 169.254.18.18:8002 169.254.18.18:8003 169.254.18.18:8004 169.254.18.18:8005 169.254.18.18:8006