首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >spring服务器无法使用jedis客户端连接到redis

spring服务器无法使用jedis客户端连接到redis
EN

Stack Overflow用户
提问于 2017-05-18 17:08:08
回答 2查看 4.1K关注 0票数 1

当我在两个不同的服务器上部署redis服务器和spring服务器,并试图通过我的应用程序连接到spring服务器时,我遇到了这个问题。

应用程序详细信息:

我们有移动应用程序,发布gps坐标到spring服务器使用stomp。在spring服务器中,我们创建jedis pubsub连接,并将这些gps数据发布到我们的web应用程序,web用户订阅这些jedis pubsub连接。

库版本:

stomp:1.7.1

绝地武士: 2.8.1

spring: 4.3.0

工作场景:

*在本地部署spring服务器,在远程生产服务器部署redis服务器。

*在远程服务器上部署spring服务器,在部署spring服务器的同一台远程服务器上部署redis服务器。

部分工作场景:

*在远程服务器上部署spring服务器,在部署spring服务器的不同远程服务器上部署redis服务器。在这个场景中,我使用redis cli监控redis服务器,我可以看到"HGETALL“、"PUBLISH”关键字及其数据。但同时我在spring服务器中得到了以下错误:

由以下原因引起:

代码语言:javascript
运行
复制
java.net.ConnectException: Connection refused (Connection refused)
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at redis.clients.jedis.Connection.connect(Connection.java:158)
    ... 4 more
redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused (Connection refused)
    at redis.clients.jedis.Connection.connect(Connection.java:164)
    at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:80)
    at redis.clients.jedis.Connection.setTimeoutInfinite(Connection.java:68)
    at redis.clients.jedis.Jedis.subscribe(Jedis.java:2626)
    at shipxpress.pubsubservice.controllers.SubscriberThread.run(MainController.java:227)

spring服务器可以成功地部署到服务器,当jedis尝试发布或订阅连接时会发生异常。我可以从我们通过redis-cli部署spring服务器的服务器上成功ping到redis服务器,redis服务器的prtected mode为no,bind ip设置为0.0.0.0

链接:我浏览了下面的链接,但没有成功

Redis bind to more than one IP

https://github.com/xetorthio/jedis/issues/1405

Cannot connect to redis using jedis

EN

回答 2

Stack Overflow用户

发布于 2017-05-18 18:19:13

这个问题意味着Spring远程服务器不能在默认的Redis端口上与另一个远程服务器(Redis服务器)通信。也许您可以通过从控制台使用netstat从另一个远程服务器访问远程Redis服务器来确认这一点。

票数 0
EN

Stack Overflow用户

发布于 2017-11-20 17:21:09

我也有同样的问题,最简单的解决方案是

redis.conf文件中找到以下行并将其注释掉:

代码语言:javascript
运行
复制
bind 127.0.0.1

通过在其前面添加#

代码语言:javascript
运行
复制
# bind 127.0.0.1

并将行protected-mode yes更改为protected-mode no

保存redis.conf并使用config文件重新启动redis

代码语言:javascript
运行
复制
redis-server /configFileLocation
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44043358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档