在 redis.conf 中,正常设置是
绑定 127.0.0.1
我也想让redis听另一个ip(比如我本地的开发地址)
我试过了
绑定 127.0.0.1、123.33.xx.xx
但这不起作用。我在文档中或通过谷歌搜索找不到任何相关内容。希望有人可以提供帮助。
在 redis.conf 中,正常设置是
绑定 127.0.0.1
我也想让redis听另一个ip(比如我本地的开发地址)
我试过了
绑定 127.0.0.1、123.33.xx.xx
但这不起作用。我在文档中或通过谷歌搜索找不到任何相关内容。希望有人可以提供帮助。
这个答案没有过时,适用于旧版本和新版本
理解的问题是Redis绑定不显示客户端机器的地址,而是显示应该建立连接的接口。在你的例子中,如果你的本地开发(客户端)地址是 123.33.xx.xx,并不意味着你必须把完全相同的地址作为绑定,否则 Redis 服务将无法启动。
因此,如果ifconfig
在您的 Redis服务器机器上显示您有一些类似于此的网络接口:
eth0 Link encap:Ethernet HWaddr 00:0c:...
inet addr:192.168.1.110 Bcast:192.168.1.255 Mask:255.255.255.0
您可以将接口的地址192.168.1.110
作为绑定,通过此接口对 Redis 的每个请求都应该成功。
自从:
--[Redis 2.8 Release Candidate 1 (2.7.101)] 发布日期:2013 年 7 月 18 日
你可以:
- [新] 能够绑定多个 IP 地址。
干杯!!
编辑:似乎正确的方法仍然是只有一行和一个或多个用空格分隔的 IP
这边走:
bind 127.0.0.1 10.150.220.121
编辑:这是一个过时的答案。请检查更新的答案以获得解决方案。
您不能将 redis 设置为侦听特定的多个接口。如果需要多个接口,只需删除绑定线。
正如@taro 指出的那样,使用防火墙来限制访问。
我也尝试找到该答案,就目前而言,这是不可能的,我在多个(但不是所有接口)上搜索答案时发现了这一点。这就是出现的http://code.google.com/p/redis/issues/detail?id=497声明它不会被 redis 本身支持。
与 haproxy 结合使用,就不可能一次性将其放在 redis 前面。您需要使用不同的端口或其他端口,或者选择绑定 1 个 IP。
这对我有用的唯一方法是添加单独的行:
bind 111.222.33.44
bind 127.0.0.1 ::1
bind 127.0.0.1 192.168.152.2
注意,我必须把 127.0.0.1 放在第一位,否则 192.x 将不会在系统启动时绑定。然而,另一个systemctl restart redis
就足够了——可能是一个错误?(Debian 10 和 Redis 5.0.3)
对于macOS Homebrew安装,请确保您正在编辑/usr/local/etc/redis.conf
而不是模板文件:/usr/local/Cellar/redis/6.2.6/.bottle/etc/redis.conf