使用Jedis出现Connection refused的解决方案

时间:2024-04-03 08:48:44

错误一:如下图

使用Jedis出现Connection refused的解决方案

原因是:客户端连接Linux服务其超时,因为服务器并没有将6379这个端口打开,提供外界访问。

当我们利用Jedis操作服务器的Redis数据库时,需要先将远程服务器的端口(默认端口是6379)开放,命令如下:

解决:root权限下,运行vim /etc/sysconfig/iptables 进入编辑模式

按两下yy字母键进行复制,然后按下p键进行粘贴

退出编辑模式,保存并退出。如下图方框中就是操作结果

使用Jedis出现Connection refused的解决方案

进行完以上操作然后需要重启下防火墙,让修改生效。

操作命令:service iptables restart即可。如下图:

使用Jedis出现Connection refused的解决方案

最后再回到java项目中运行,但是我这里又出现了一个报错,具体内容是拒绝访问,如下图:

使用Jedis出现Connection refused的解决方案

是因为redis默认bind 127.0.0.1,所以你会理所当然地想到去redis的配置文件redis.conf将“bind 127.0.0.1”注释掉。

认为这样就可以顺利访问了,其实还真不能解决,我们仍然会得到异常,异常的信息给我们提示了很多方法,

其中有一个方法就是让我们将protected mode关闭掉。原来是redis默认开启了protected mode,保证只有主机才能访问到。

所以正确解决jedis conneciton refused的解决方案如下:

1) 关闭redis-server

2) 打开redis的配置文件redis.conf

3) 将配置文件中的bind 127.0.0.1注释掉(

这里科普下linux如何在vim/vi里搜索关键字,首先是在命令行模式下敲斜杠(  /  )这时在状态栏也就是屏幕的左下脚就出现了”/”然后输入你要查找的关键字回车就可以了。

如果你要继续查找此关键字,敲字符n就可以继续查找了。敲字符N( 大写的N 就会向前查询))

4) 找到配置文件中protected mode,默认protected mode yes,需要将其改为protected mode no

5 )重新开启reids-server ,命令如下(前提redis.conf文件和redis-server同一个目录):# ./bin/redis-server redis.conf 

但是将protected mode关闭掉明显不安全,意味着任何机器都能远程访问你的redis-server,更加安全的方法有待探究。