2021-11-13 记录:Java连接远程Redis的报错信息和解决办法

记录:Java连接远程Redis的报错信息和解决办法

Redis刚刚入门,用Java程序远程连接Redis,报了很多错误,许久才连上数据库。记录一下这些错误信息和引发原因、解决办法。

java.io.IOException: 你的主机中的软件中止了一个已建立的连接。

Connection refused: no further information

这两个错误信息很不明确,但是可以获知的是 和远程Redis根本没碰上。这个错误大概率是ip地址、端口号的错误。
但是经检查,我代码里面的端口号和IP应该没问题,所以又去远程主机上的Redis上去找原因,发现Redis的配置文件里面,我没有修改bind这一项配置:

bind 127.0.0.1
原因:属性文件没有修改bind地址为主机的ip,导致redis服务只绑定在了环回地址上,而没有对外暴露,因此外界根本访问不到。
解决办法:vim一下就ok了。把bind这一项改成主机的ip。

DENIED Redis is running in protected mode because protected mode is enabled

出现这个错误说明远程Redis数据库找到了,至少ip地址和端口号是没有问题的。但是被拒绝访问。
原因:这个原因很明确,因为redis的protected mode是打开的,所以被拒绝访问。
解决方法:引用自https://blog.csdn.net/hou_ge/article/details/104659421

第一种:通过命令行CONFIG SET protected-mode no关闭保护模式,这种方式是临时的,重启服务后,就会失效。(不建议在连接的互联网的环境中使用)
第二种:通过修改redis.conf配置文件实现,即把protected-mode yes修改成protected-mode no,然后重启服务器即可,这种方式和第一种相比,第一种方法不需要重启服务器,这种方法是永久生效的。
第三种:启动Redis服务的时候,添加–protected-mode no参数。这种方法也是用于测试的情况。
第四中:设置bind的地址和Redis密码。这种方式是在正式、联网环境可以安全使用的方法。

我选择了设置密码,直接关掉protected mode也可以,但是感觉这种习惯不太好。改密码也是vim配置文件就可以了:

requirepass yourPwd

READONLY You can’t write against a read only slave.

这个错误信息也比较明确,Redis默认情况下,我们无法向从节点中写入数据。
原因:Redis默认情况下,从节点(slave)是无法写入数据的。
解决方法:把从节点变成主节点,或者设置从节点可写。

  1. 可以通过vim配置文件,修改属性,使得从节点可写入:

    slave-read-only yes

  2. 把从节点变成主节点
    可以在客户端中输入命令

    slaveof no one

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值