Redis:获取JedisConnectionException:连接到远程服务器时无法从池中获取资源

时间:2019-08-28 17:57:44

标签: java redis jedis

我正在尝试使用Jedis客户端从Windows 10上运行的Java App连接到远程Redis实例。我的程序因JedisConnectionException异常而失败。

环境

  1. 在Ubuntu 19.04上的VM中运行的Redis版本5.x
  2. Redis配置为使用密码在特定IP上侦听,并且保护模式设置为“开/是”。
  3. 我正在Windows 10 Pro计算机上运行我的开发环境。
  4. Jedis版本是3.1.0
  5. JDK在Windows和Linux上均为OpenJDK 11.0.4。

我尝试过的事情

  1. 我已经使用本地redis-cli测试了连接到远程(在VM上运行)Redis服务器的操作,并成功完成,确认我能够访问,连接和使用redis-server。
  2. 我从Netbeans 11.1 IDE运行了测试程序,该程序运行在具有不同IP的同一主机上的另一台Linux VM上,而且也很成功。
  3. 我从Windows 10计算机上运行的Netbeans 11.1 IDE运行了我的测试程序(100%相同的代码),该程序无法连接并引发异常。

代码段

pool =新的JedisPool(                     配置                     “ 192.168.199.130”,6379,                     Protocol.DEFAULT_TIMEOUT,“ foobar”,                     Protocol.DEFAULT_DATABASE); Jedis jedis = pool.getResource(); //此语句引发异常 jedis.close();

摘要

JedisPool.getResource()在Linux上运行,而Windows上的相同代码失败。

还有其他人遇到吗?

任何人和所有帮助表示赞赏。 :-)

1 个答案:

答案 0 :(得分:0)

我确实解决了问题。奇怪的是,我能够通过redis-cli进行连接,但无法通过Jedis api进行连接。在redis服务器上使用配置可以解决此问题。 –刚才的图坦

相关问题