公司项目开发环境需要使用到 Redis,申请基础技术支撑平台的 Redis 中间件比较麻烦,项目组也不知道具体流程,而且时间可能比较长。

现在的情况是,项目因为 Redis 启动报错。

这种情况下,我们项目组就自行在虚拟机上临时搭建了 Redis。当然为了效率,搭建的是单机版的,采用的是公司提供的安装包与运行脚本。

本来这都是很简单的事情,但是安装完毕之后,在服务器上可以正常登陆访问。

解压后的Redis目录如下:

redis客户端怎么连接 redis客户端连接服务器_Redis

启动Redis

./redis-cli

因为是在本机安装的,也没有密码,这样是直接可以登陆的。

 

redis客户端怎么连接 redis客户端连接服务器_数据库_02

 客户端工具连接Redis报错

我们使用Redis客户端连接工具AnotherRedisDesktopManager连接Redis,竟然报错了,报错信息如下:

redis-cli 报错:redis Could not connect to Redis at 127.0.0.1:6379: Connection refused  

这个是没有想到的。这说明服务启动没问题,但是连接被拒绝了。

下面解决方案参考这篇文章:

redis bind连不上报错redis Could not connect to Redis at 127.0.0.1:6379: Connection refused

以及这篇文章:

Could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接

根据上述文章所说,我们知道:

bind表示的是指定本机可以接受连接的网卡地址,比如redis服务器上有一个公网IP(114.114.114.114),一个内网IP(192.168.1.109),如果该redis服务器需要被本机及以外的服务器访问(比如说内网的服务器),此时需要在redis.conf中绑定内网ip:

bind 192.168.1.109 127.0.0.1

 意思是说,使用192.168.1.109 这个ip来接收来自外部的连接请求。

未修改的原始状态是:

bind 127.0.0.1

 这样的绑定只能在服务器上自己连接自己,就像我上面连接的一样,只需要通过./redis-cli命令就登陆上了。但是这种方式在非服务器的地方连接是失败的。

上面给出了一个方案,还有一种方案是,直接注释掉该绑定ip,即注释掉:

# bind 127.0.0.1

这代表的是开启所有ip地址的访问权限。

把redis.conf文件里面的protected-mode yes的“yes”改成“ no ”,

  • yes 保护模式,只允许本地链接
  • no 保护模式关闭

此时再通过客户端工具连接Redis已经成功。