Redis開啟遠程登入串連。

來源:互聯網
上載者:User

標籤:

今天使用jedis用戶端api串連遠端連線redis的時候,一直報錯,如下: 

redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect    at redis.clients.jedis.Connection.connect(Connection.java:164)    at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:80)    at redis.clients.jedis.Connection.sendCommand(Connection.java:100)    at redis.clients.jedis.Connection.sendCommand(Connection.java:91)    at redis.clients.jedis.BinaryClient.auth(BinaryClient.java:551)    at redis.clients.jedis.BinaryJedis.auth(BinaryJedis.java:2047)    at sy.test.TestJedis.setUp(TestJedis.java:18)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:606)    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)    at org.junit.runners.ParentRunner.run(ParentRunner.java:309)    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)Caused by: java.net.ConnectException: Connection refused: connect    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)    at java.net.Socket.connect(Socket.java:579)    at redis.clients.jedis.Connection.connect(Connection.java:158)    ... 30 more

  原來是redis預設只能localhost登入,所以需要開啟遠程登入。解決方案如下:

  在redis的設定檔redis.conf中,找到#bind localhost注釋掉。

    注釋掉本機,區域網路內的所有電腦都能訪問。

    band localhost   只能本機訪問,區域網路內電腦不能訪問。

    bind  區域網路IP    只能區域網路內IP的機器訪問, 本地localhost都無法訪問。

  驗證方法:

  [[email protected] ~]# ps -ef | grep redis  root      2175     1  0 08:15 ?        00:00:05 /usr/local/bin/redis-server *:6379

  /usr/local/bin/redis-server *:6379 中就可以看出此時是允許所有的ip串連登入到這台redis服務上。

 

  參考文章:

      1.http://www.oschina.net/question/579073_113004?fromerr=YBv8RRYl

Redis開啟遠程登入串連。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.