无法从池中获取资源JedisConnectionException: Could not get a resource from the pool

前几天使用redisde的时候发现了一个小错误,将错误的信息  Could not get a resource from the pool 翻译后无法从池中获取资源,

错误代码如下:

 at redis.clients.util.Pool.getResource(Pool.java:50)

at redis.clients.jedis.JedisPool.getResource(JedisPool.java:86)

at utils.JedisUtils.getJedis(JedisUtils.java:31)

at service.LinkageService.queryProvince(LinkageService.java:17)

at test.LinkageTest.test(LinkageTest.java:10)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:564)

at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)

at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)

at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

at org.junit.runners.Suite.runChild(Suite.java:128)

at org.junit.runners.Suite.runChild(Suite.java:27)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

at org.junit.runner.JUnitCore.run(JUnitCore.java:137)

at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)

at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)

at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)

at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect

at redis.clients.jedis.Connection.connect(Connection.java:154)

at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:83)

at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1643)

at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:85)

at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:861)

at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)

at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)

at redis.clients.util.Pool.getResource(Pool.java:48)

... 34 more

Caused by: java.net.ConnectException: Connection refused: connect

at java.base/java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)

at java.base/java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)

at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:400)

at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:243)

at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:225)

at java.base/java.net.PlainSocketImpl.connect(PlainSocketImpl.java:148)

at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:402)

at java.base/java.net.Socket.connect(Socket.java:591)

at redis.clients.jedis.Connection.connect(Connection.java:148)

... 41 more

错误原因:

一、Redis没有启动;

我自己遇到一次这样的问题。汗!

二、由于防火墙原因无法连接到Redis;

1、服务器防火墙入站规则。

2、访问Redis的应用程序所在主机的出站规则。

三、IP地址或端口错误

四、Jedis 对象用完以后,要释放掉,不让会一直占用,所以会出现无法获取新的资源。

五、Spring Boot项目,缺少依赖

如果使用Redis与Spring Boot,也会抛出此异常。

如果你使用的是Spring Boot,那么Redis的依赖是不够的,

您还需要从redis.io手动下载并安装Redis,然后将其从终端运行

原文:https://blog.csdn.net/testcs_dn/article/details/43052585

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值