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

以上这篇Linux下Redis允许远程连接的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Linux平台安装redis及redis扩展的方法

    本文实例讲述了Linux平台安装redis及redis扩展的方法.分享给大家供大家参考,具体如下: 下载地址:http://redis.io/download,下载最新文档版本. 本教程使用的文档版本为 2.8.17,下载并安装: $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz $ tar xzf redis-2.8.17.tar.gz $ cd redis-2.8.17 $ make make完后 redis-2.8.1

  • redis服务器允许远程主机访问的方法

    若远程主机需要访问redis服务器,可以修改redis.conf配置文件 bind字段默认为: bind 127.0.0.1 这样只能本机访问redis 若允许远程主机访问,可注释掉bind行   或者    将bind 127.0.0.1改为: bind 0.0.0.0 在远程主机验证能否访问redis 服务器: ./redis-cli -h REDIS_HOST_IP_ADDR -p 6379 REDIS_HOST_IP_ADDR : 6379> ping PONG 即成功访问redis服务

  • Redis3.2开启远程访问详细步骤

    redis默认只允许本地访问,要使redis可以远程访问可以修改redis.conf  打开redis.conf文件在NETWORK部分有说明 ################################## NETWORK ##################################### # By default, if no "bind" configuration directive is specified, Redis listens # for connect

  • 详解Redis开启远程登录连接

    今天使用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.

  • 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

  • Linux服务器中MySQL远程连接的开启方法

    前言 学习MySQL重新整理以前非MK的记载 描述 没有开启的话连接数据库报错:2003-can't connect to MYSQL 方法/步骤 •第一步 远程连接上Linux系统,确保Linux系统已经安装上了MySQL数据库.登陆数据库. mysql -u$user -p $pwd •第二步 创建用户用来远程连接 GRANT ALL PRIVILEGES ON *.* TO '$username'@'%' IDENTIFIED BY '$password' WITH GRANT OPTIO

  • Linux下Redis设置密码及开机自启动

    1.设置Redis.conf中daemonize为yes,确保守护进程开启: 找到#requirepass foorbared这一行,直接替换掉这行,改为requirepass 新密码 2.编写开机自启动脚本 vi /etc/init.d/redis 脚本内容如下: #!/bin/sh #chkconfig: 2345 80 90 # Simple Redis init.d script conceived to work on Linux systems # as it does use of

  • Linux下Redis服务器搭建过程

    系统环境 操作系统:CentOS 6.9 redis版本:redis-4.0.2安装步骤 1,安装预环境 运行以下命令安装预环境. [root@redis02 redis-4.0.2]# yum -y install gcc make 2,下载redis源代码文件并解压缩 下载完redis源代码后,运行以下命令进行解压缩. [root@redis02 softwares]# tar -xzf redis-4.0.2.tar.gz 3,redis编译 运行make命令进行编译. make命令执行完

  • Linux下redis的安装与使用图文教程

    本文实例讲述了Linux下redis的安装与使用.分享给大家供大家参考,具体如下: redis官网地址:http://www.redis.io 最新版本:3.2.6 1.下载.解压 wget http://download.redis.io/releases/redis-3.2.6.tar.gz 2.编译.安装 a.编译 make b.安装 make install 3.Redis的部署 安装成功后,下面对Redis 进行部署 a.首先为了方便管理,将Redis文件中的conf配置文件和常用命令

  • Linux下使用SSH远程执行命令方法收集

    说明:可以做SSH免密登录之后执行,这样可以省去每次执行输入密码的提示. 对于简单的命令: 如果是简单执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 基本能完成常用的对于远程节点的管理了,几个注意的点: 双引号,必须有.如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开 多行命令可以输入双引号后回车,结尾使用双引号包裹 对于脚本的方式: 有些远程执行的命令内容较多,单一命令无法完成,考虑脚本方式实现: #!/bin/bas

  • linux下禁止root远程登录和添加新用户的方法

    一.添加和root权限一样的用户 1. adduser admin passwd  admin (修改密码) 然后输入密码   (密码简单了通不过) 系统提示输入确认密码后再输入一次.OK添加成功. 2.修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示: vim /etc/sudoers ## Allow root to run any commands anywhere root ALL=(ALL) ALL admin ALL=(ALL) ALL 这个文件只

  • 解决linux下redis数据库overcommit_memory问题

    背景 公司的redis有时background save db不成功,通过log发现下面的告警,很可能由它引起的: [13223] 17 Mar 13:18:02.207 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf a

  • Docker安装Redis配置远程连接及踩坑

    目录 1. 安装Redis 2. 新建挂载配置文件夹 3. 增加配置文件 redis.conf 4. 创建redis容器并启动 5. 启动成功,查看状态 6. 容器内部连接进行测试 7. 使用Redis Desktop Manager客户端进行连接 8. 小结 1. 安装Redis 通过docker search redis和docker pull redis下载redis镜像 2. 新建挂载配置文件夹 因为 redis 默认配置你会发现只能够本地连接,不能进行远程访问,使用 Redis Des

  • 详解Linux下调试器GDB的基本使用方法

    一.概述 GDB调试的三种方式: 1. 目标板直接使用GDB进行调试. 2. 目标板使用gdbserver,主机使用xxx-linux-gdb作为客户端. 3. 目标板使用ulimit -c unlimited,生成core文件:然后主机使用xxx-linux-gdb ./test ./core. 二.gdb调试 构造测试程序如下main.c和sum.c如下: main.c:#include <stdio.h> #include <stdlib.h> extern int sum(

随机推荐