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

使用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代码可以正常连接了。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010889616/article/details/79736368
文章标签: Linux Redis
个人分类: Redis
上一篇SpringBoot定时任务配置
下一篇JavaFX Button自适应窗口(跟着窗口大小变化)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭