Redis 开放端口与设置密码

最近自己的 VPS 上部署了几个 Docker 服务,其中一个打算用 Reids 做个计数的功能,因为我的偏好是数据库类的程序不用 Docker 来部署,所以在本地安装了 Redis 服务,但是这样如果不做任何配置的话 Docker 容器中的服务是访问不到宿主机的 Redis 服务的。

从网上搜了下解决方法,都挺复杂的,需要配置网桥之类的,所以我就走了个捷径,直接将 Redis 的端口进行开放,然后设置一个密码:

修改 /etc/redis/redis.conf:

将里边的 bind 127.0.0.1 改为 bind 0.0.0.0,这样的话 Redis 就可以监听外部请求了。

接下来为 Redis 配置一个认证密码:

找到 #requirepass foobared 将注释去掉,同时将 foobared 改为自己想设置的密码。

修改完后,保存退出,然后重启 Redis 服务:sudo /etc/init.d/redis-server restart

这样就完成了,在我本地尝试登录服务器的 Redis:

redis-cli -h ipaddress 发现登录成功,发送个命令试试看: keys *,这是会得到:

(error) NOAUTH Authentication required.

这样的结果,告诉我们没有权限,因为我们设置了访问密码。

正确的登录姿势是:redis-cli -h ipaddress -a password

同时,Python 程序中连接 Redis 的时候也要记得加上 password 参数。