文章目录

  • 设置bind
  • bing的作用
  • 查看主机所有的网卡ip地址
  • 编辑redis.conf,添加所有ip地址
  • 设置远程连接并设置密码
  • 开启远程连接
  • 添加密码
  • 开启服务
  • 补充
  • 连接
  • 命令行连接redis
  • 图形界面客户端连接redis


前言:其实网上的很多博客都是只讲了如何操作,对于这些操作为什么要这样设置并没有说清楚。还有个问题就是网上好多博客都将redis的bind作用说错了!redis的bind并不是绑定需要连接本机redis的外网主机ip地址的,是绑定自己主机的所有网卡的ip地址。因此我才觉得应该写一篇更有意义的文章

 

设置bind


bing的作用

bind就是redis配置文件redis.conf的一个设置项,起到的作用是为了绑定本机的所有的网卡ip地址,redis默认127.0.0.1。因此你用127.0.0.1登录是没问题的。如果你是腾讯云服务器的用户,你用服务器的外网ip连接肯定会报Connection refused错(例如下面的图片)。具体原因就是因为云服务器有两个网卡ip,一个是内网ip,一个是127.0.0.1,而redis默认只有127.0.0.1,因此我们需要配置所有的本机ip。

redis 配置多个IP地址 redis bind多个ip_redis远程连接

查看主机所有的网卡ip地址

ifconfig  //linux
ipconfig  //windows

下面是我购买的腾讯云服务器上的两个ip地址

redis 配置多个IP地址 redis bind多个ip_redis远程连接_02

编辑redis.conf,添加所有ip地址

cd /usr/local/redis/bin/
vim redis.conf

cd进入你的redis.conf文件,使用vim命令编辑文件,把刚才上面查到的所有ip地址都加到bind后面

bind 127.0.0.1 你的另一个ip地址

redis 配置多个IP地址 redis bind多个ip_redis 配置多个IP地址_03


其实也可以这样写

bind 0.0.0.0

这样的话就是默认包含本机所有的网关ip地址了

先别退出,接下来还得开启远程连接许可和设置密码。
 

设置远程连接并设置密码


要想真的能够远程连接还得将redis的保护模式关闭,redis的保护模式时靠redis.conf文件中的protected-mode 这个关键字决定的,后面接yes为开启,no为关闭,默认是yes,也就是禁止远程连接。但是关闭之后只要是别人知道你的ip地址和端口号都可以连接,很不安全,因此更好地办法就是添加密码。

设置密码redis依靠的是 requirepass 关键字,后面空格就可以加上你的密码了
还是在redis.conf文件中
语法: requirepass 你的密码
步骤在下面
 

开启远程连接

还是redis.conf文件,将protected-mode 的no改为yes

redis 配置多个IP地址 redis bind多个ip_腾讯云服务器_04

添加密码

redis.conf中找到 requirepass 字段,这里其实很难找到,不过推荐你一个在vim中快速查找关键字的技巧。只需要退出insert编辑模式,处于normal模式下,按/,然后后面跟上你要查找的内容,按回车就行了。会跳转到第一个匹配到的查找结果,按n为下一个结果,按N为上一个匹配的结果。

/requirepass

redis 配置多个IP地址 redis bind多个ip_redis 配置多个IP地址_05


找到# requirepass foobared(看下图)这一行。

redis 配置多个IP地址 redis bind多个ip_腾讯云服务器redis远程连接_06


将#去掉(#是注释的意思),把foobared改为你要设置的密码

requirepass 你的密码

redis 配置多个IP地址 redis bind多个ip_redis 配置多个IP地址_07

设置以进程模式开启

daemonize yes

redis 配置多个IP地址 redis bind多个ip_腾讯云服务器redis远程连接_08

按ESC退出编辑模式 :wq保存并退出redis.conf文件

到这一步并没有结束,如果你想让这些设置生效,还得重启服务
 
 

开启服务


为了让这些redis.conf的上面这些设置生效,我们得开启(重启)服务,让redis按照redis.conf中的设置开启服务。

如果你之前已经启动了redis,记得先关闭redis。 ./前面有个空格

./redis-cli shutdown

开启服务,让设置生效

./redis-server redis.conf

ps:上面这两个指令都是在redis/bin/目录下。就是你redis的安装目录下,不是解压目录

我们可以通过 ps -ef |grep redis来查看redis是否打开

redis 配置多个IP地址 redis bind多个ip_redis远程连接_09

还可以通过 netstat -tnlp查看redis服务使用的端口(其实netstat -tnlp是用来查看tcp下所有正在监听的端口的)
具体netstat的字段属性

  • -t (tcp) 仅显示tcp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化成数字。
  • -l 仅列出有在 Listen (监听) 的服務状态
  • -p 显示建立相关链接的程序名
补充

如果你在看我的博客之前就已经设置了密码,并且redis的服务已经开启了,密码的设置也生效了,这时候关闭redis的后端启动的命令为:

./redis-cli -a 你的密码 shutdown

 
 

连接


终于到了检验上述设置是否有用的时候了。由于我们上面设置了密码,因此在连接时还得附上密码

命令行连接redis

./redis-cli -h 134.175.22.186 -p 6379 -a 12345

134.175.22.186是我自己购买的腾讯云服务器的地址,也是刚才设置能够远程访问redis的ip地址。实际操作中更换为你们的就好了。-p后面跟的是redis的端口号,一般是6379,-a后面跟的是密码
 

图形界面客户端连接redis

我自己是使用了Redis Desktop manager1 这个redis的图形管理界面来连接redis的,输入主机ip号,port端口号,Auth(密码)就好了。

redis 配置多个IP地址 redis bind多个ip_redis_10


  1. Redis Desktop manager:windows下的一款redis的图形界面操作客户端。界面挺简洁的。