Linux下Redis允许远程连接的实现方法

吾爱主题 阅读:137 2024-04-05 15:05:36 评论:0

Linux安装好Redis之后,使用Java进行连接,Java代码如下

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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" ));    } }

报如下错误:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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

使用Telnet 192.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允许远程连接的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/u010889616/article/details/79736368

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容