通過jedis遠程訪問redis服務器


一.jedis簡介

  類似於mysql數據庫,一般開發都需要通過代碼去訪問redis服務器,對於主流的開發語言,redis提供了訪問的客戶端接口。

  https://redis.io/clients

       

   而對於Java而言,最常用的就是jedis了。

二.jedis訪問redis服務器代碼實現

  1.創建Maven工程,添加jedis依賴如下:

          

<!--redis-->
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.9.0</version>
    </dependency>
  </dependencies>

  

  2.簡單的代碼測試

   

public class RedisTest {
    
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.2.132", 6379);  //創建客戶端,1p和端口號
        jedis.set("name", "齊高相");
        String value = jedis.get("name");
         System.out.println(value);
         jedis.close(); //釋放連接資源

    }
}

  運行之后,會報錯。

  

    原因是redis在虛擬機上,默認只允許本機訪問,

  1.開放redis端口的防火牆

    命令如下:

    

 

     

     繼續嘗試運行,

    

Exception in thread "main" redis.clients.jedis.exceptions.JedisDataException: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.
at redis.clients.jedis.Protocol.processError(Protocol.java:127)
at redis.clients.jedis.Protocol.process(Protocol.java:161)
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.qgx.redis.RedisTest.main(RedisTest.java:9)

  報錯的意思是說redis在保護模式下運行,需要去掉保護。

      去掉redis的自我保護

  1.直接去掉自我保護(不推薦)

  進入redis的配置文件

  vi /usr/local/redis/redis.conf

  

  將daemonize yes改為no

 

  第二種  設置redis的連接密碼

  

  ./bin/redis-cli

  config set requirepass 123456  123456為訪問密碼

    代碼處需要認證密碼。

  

    重新運行

    

    至此,遠程訪問成功!

 

 

 

 

 

   

  

 

 

 

  

  

   

   

 

 

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM