• 售前

  • 售后

热门帖子
入门百科

Linux下Redis答应长途毗连的实现方法

[复制链接]
去火星三小时自 显示全部楼层 发表于 2021-10-26 14:23:20 |阅读模式 打印 上一主题 下一主题
Linux安装好Redis之后,使用Java进行连接,Java代码如下
  1. package com.wzj.demo.test;
  2. import redis.clients.jedis.Jedis;
  3. /**
  4. * Created by wzj on 2018/3/29.
  5. */
  6. public class RedisJava
  7. {
  8.   public static void main(String[] args)
  9.   {
  10.     //连接本地的 Redis 服务
  11.     Jedis jedis = new Jedis("192.168.3.45");
  12.     System.out.println("连接成功");
  13.     //设置 redis 字符串数据
  14.     jedis.set("runoobkey", "www.runoob.com");
  15.     // 获取存储的数据并输出
  16.     System.out.println("redis 存储的字符串为: "+ jedis.get("runoobkey"));
  17.   }
  18. }
复制代码
报如下错误:
  1. Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketException: Connection reset
  2.         at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:202)
  3.         at redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40)
  4.         at redis.clients.jedis.Protocol.process(Protocol.java:151)
  5.         at redis.clients.jedis.Protocol.read(Protocol.java:215)
  6.         at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:340)
  7.         at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:239)
  8.         at redis.clients.jedis.Jedis.set(Jedis.java:121)
  9.         at com.wzj.demo.test.RedisJava.main(RedisJava.java:17)
  10.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  11.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  12.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  13.         at java.lang.reflect.Method.invoke(Method.java:498)
  14.         at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
  15. Caused by: java.net.SocketException: Connection reset
  16.         at java.net.SocketInputStream.read(SocketInputStream.java:209)
  17.         at java.net.SocketInputStream.read(SocketInputStream.java:141)
  18.         at java.net.SocketInputStream.read(SocketInputStream.java:127)
  19.         at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:196)
  20.         ... 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答应远程连接的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持草根技能分享。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作