连接Redis时提示“java.net.ConnectException: Connection refused:conn”的解决办法

talklee

温馨提示:这篇文章已超过938天没有更新,请注意相关的内容是否还可用!

这个折磨了我一下午的问题终于迎刃而解,之前并没有接触过Redis缓存数据库,仅仅知道这个是一个php扩展插件的一个功能,今天项目所需在宝塔服务器端安装了redis缓存数据库,但是安装完成之后连接时提示“java.net.ConnectException: Connection refused:conn”错误,翻译成中文就是“连接被拒绝”因为是第一次安装和部署,不知道问题出现在哪,先说下什么是redis缓存数据库?

连接Redis时提示“java.net.ConnectException: Connection refused:conn”的解决办法 第1张

Redis(Remote Dictionary Server )

Redis即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。在宝塔安装部署中需要先安装Redis服务端然后再PHP扩展安装redis功能,另外宝塔官方声明部分Centos7系统仅支持安装5.x版本,但是宝塔软件上传给出的却是6.2.5,所以没得选择只能安装,这个安装都是在宝塔,不做演示了,直接安装服务端,然后在站点使用的php版本中添加redis扩展即可。还需要在左侧安全菜单添加redis默认端口:6379,如果涉及服务器安全组的话也需要开放对应接口权限。

安装部署完成了,但是就是无法连接,查了百度,有的说需要关闭8080端口Tomcat服务器才行,然后查看服务器根本没有Tomcat服务器也没占用8080端口,还有的说把默认端口号更改,测试依然无效,还有的说是由于Mysql配置了不支持远程连接引起的,安装教程将Host设置了“%”后还是无法访问,感觉最靠谱的教程是将“bind 127.0.0.1”注释掉,为什么说最靠谱一会说,至少按照如上教程我是没有解决。

查了很多资料大概是因为redis默认bind 127.0.0.1,之所以说这是最靠谱的因为这是解决办法之一,当然单单注释bind还是不行,我们仍然会得到异常,解决的第二个方法就是把配置文件protected-mode关闭掉。

redis默认开启了protected-mode,保证只有主机才能访问到,所以正确解决jedis conneciton refused的解决方案如下:

1) 宝塔软件商城找到redis,点击设置,找到配置文件

3) 将配置文件中的bind 127.0.0.1注释掉,注意:至少有两处,仅仅注释顶部的bind是不行的。

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

5 )重新开启reids-server 或者重载也是可以的。

安装如上操作重新在客户端链接之后就可以了,但是在redis负载状态下会显示:“没有在redis配置中找到 [ bind ip ] 参数”,如图:

连接Redis时提示“java.net.ConnectException: Connection refused:conn”的解决办法 第2张

因为我们在配置文件中禁用了bind ip,所以会有这个提示,无法查看负载状态,但是测试链接没有问题,功能测试也没有问题,那就暂且不管啦,以后遇到其他问题在解决吧,但是将protected mode关闭掉明显不安全,意味着任何机器都能远程访问你的redis-server,更加安全的方法有待探究。

文章版权声明:除非注明,否则均为李洋个人博客原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (有 2 条评论,3814人围观)
网友昵称:区块链
区块链 V 游客 Google Chrome 86.0.4240.198 Windows 10 x64 沙发
2021-10-07 来自天津 回复
学习到了,哈哈哈
网友昵称:talklee
talklee V 博主 Sogou Explorer Windows 10 x64
2021-10-08 来自天津 回复
@区块链 谢谢支持

目录[+]