问题描述:
有个项目数据都在我本地的Redis中,同事拉取代码之后需要远程连接我的Redis服务;能ping通(网络畅通),也能Telnet(端口开放),防火墙也关闭了;但是就是无法远程连接;
排查过程
- 因为能ping通,telnet也可以,基本可以排除网络问题,那么原因可能就是我本地的redis服务,打开redis目录下redis.windows.conf文件,在阅读其中配置的时候发现
这段话的大概意思就是将redis暴露在互联网环境下是不安全的,所有应该在bind后指定ip,使redis接收指定服务器的连接;这里有两种修改方法:
- 如图中所举的例子,将需要远程的ip写在bind后面
- . 将127.0.0.1修改为0.0.0.1,接收互联网上所有连接
- 修改之后保存改配置并重启Redis服务,但是同事任然无法成功建立连接,这时候注意到命令行界面有一行信息:
可以看到,Redis虽然启动了,但是使用的配置文件并不是我们刚刚修改的,而是默认的配置文件;使用命令redis-server.exe redis.windows.conf
命令指定配置文件启动Redis服务
这时候就不会有刚刚的信息,而且也成功建立了远程连接。
注:
redis-server.exe redis.windows.conf
该命令是针对Windows环境下的启动命令,其他系统请使用对应命令,该命令组成即为 redis启动命令 + 配置文件