php发展

首页 » 常识 » 常识 » 连接Redis时提示Connectio
TUhjnbcbe - 2023/5/9 21:14:00

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

Redis(RemoteDictionaryServer)

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

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

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

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

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

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

4)找到配置文件中protected-modeyes,默认protectedmodeyes,需要将其改为protected-modeno

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

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

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

1
查看完整版本: 连接Redis时提示Connectio