1. 程式人生 > 資料庫 >Linux下Redis允許遠端連線的實現方法

Linux下Redis允許遠端連線的實現方法

Linux安裝好Redis之後,使用Java進行連線,Java程式碼如下

package com.wzj.demo.test;
 
import redis.clients.jedis.Jedis;
 
/**
 * Created by wzj on 2018/3/29.
 */
public class RedisJava
{
  public static void main(String[] args)
  {
    //連線本地的 Redis 服務
    Jedis jedis = new Jedis("192.168.3.45");
    System.out.println("連線成功");
 
    //設定 redis 字串資料
    jedis.set("runoobkey","www.runoob.com");
 
    // 獲取儲存的資料並輸出
    System.out.println("redis 儲存的字串為: "+ jedis.get("runoobkey"));
  }
}

報如下錯誤:

Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketException: Connection reset
	at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:202)
	at redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40)
	at redis.clients.jedis.Protocol.process(Protocol.java:151)
	at redis.clients.jedis.Protocol.read(Protocol.java:215)
	at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:340)
	at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:239)
	at redis.clients.jedis.Jedis.set(Jedis.java:121)
	at com.wzj.demo.test.RedisJava.main(RedisJava.java:17)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:209)
	at java.net.SocketInputStream.read(SocketInputStream.java:141)
	at java.net.SocketInputStream.read(SocketInputStream.java:127)
	at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:196)
	... 12 more

使用Telnet192.168.3.45 6379,發現埠是不通的。

通過網上查詢分析,原因是:Redis預設只允許本地連線,不允許其他機器連線,需要進行如下修改:

(1)修改redis.conf 檔案,把bind 127.0.0.1 ::1這一行註釋掉。

(2)修改redis.conf 檔案,protected-mode 要設定成no

(3)啟動的時候,需要指定redis.conf 檔案,執行./src/redis-server redis.conf命令

設定之後,重啟測試,發現Java程式碼可以正常連線了。

以上這篇Linux下Redis允許遠端連線的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。