Redis绑定到多个IP

时间:2013-04-20 12:20:27

标签: redis

在redis.conf中,正常设置为

绑定127.0.0.1

我希望redis也能听另一个ip(比如我的本地开发地址)

我试过

绑定127.0.0.1,123.33.xx.xx

但这不起作用。我在文档中找不到任何相关内容或通过谷歌搜索。希望有人可以提供帮助。

8 个答案:

答案 0 :(得分:31)

自Redis 2.8以来,确实可以绑定到多个IP。只需用空格(而不是逗号)分隔每个IP。

bind 127.0.0.1 123.33.xx.xx

Source: Official default config

答案 1 :(得分:15)

自:

  

- [Redis 2.8 Release Candidate 1(2.7.101)]发布日期:2013年7月18日

你可以:

  
      
  • [NEW]能够绑定多个IP地址。
  •   

干杯!!

答案 2 :(得分:8)

此答案不会过时,适用于较旧版本和较新版本

理解的问题是Redis绑定不会显示客户端计算机的地址,但会显示应通过其建立连接的接口。在您的示例中,如果您的本地开发(客户端)地址是123.33.xx.xx,那么它并不意味着您必须将完全相同的地址作为绑定,否则Redis服务将无法启动。

因此,如果您的Redis 服务器计算机上的ifconfig显示您有一些与此类似的网络接口:

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请求都应该成功。

答案 3 :(得分:4)

编辑:似乎正确的方法是,只有一行和一个或多个IP以空格分隔

这样:

bind 127.0.0.1 10.150.220.121

答案 4 :(得分:3)

我也尝试找到那个答案,因为它代表了,不可能这样做,我在搜索多个(但不是所有接口)的答案时找到了这个。这就是http://code.google.com/p/redis/issues/detail?id=497出现的情况,说明redis本身不会支持它。

与haproxy结合使用,无法一次性将它放在redis前面。您需要使用其他端口,或者选择绑定1 IP。

答案 5 :(得分:3)

您无法将redis设置为侦听特定多个接口。如果需要多个接口,只需删除绑定行。

@taro指出使用防火墙来限制访问。

答案 6 :(得分:0)

对我来说唯一有效的方法是添加单独的行:

bind 111.222.33.44
bind 127.0.0.1 ::1

答案 7 :(得分:0)

bind 127.0.0.1 192.168.152.2

注意,我必须把 127.0.0.1 放在前面,否则 192.x 在系统启动时不会被绑定。

但是另一个 systemctl restart redis 会使绑定起作用,所以我猜这是一个错误(Debian 10 和 Redis 5.0.3)