51

在 redis.conf 中,正常设置是

绑定 127.0.0.1

我也想让redis听另一个ip(比如我本地的开发地址)

我试过了

绑定 127.0.0.1、123.33.xx.xx

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

4

8 回答 8

43

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

bind 127.0.0.1 123.33.xx.xx

来源:官方默认配置

于 2014-03-08T09:55:37.190 回答
21

这个答案没有过时,适用于旧版本和新版本

理解的问题是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 的每个请求都应该成功。

于 2016-12-07T20:12:17.977 回答
14

自从:

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

你可以:

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

干杯!!

于 2013-11-12T05:42:01.037 回答
10

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

这边走:

bind 127.0.0.1 10.150.220.121
于 2016-10-05T23:03:50.183 回答
4

编辑:这是一个过时的答案。请检查更新的答案以获得解决方案。

您不能将 redis 设置为侦听特定的多个接口。如果需要多个接口,只需删除绑定线。

正如@taro 指出的那样,使用防火墙来限制访问。

于 2013-07-24T11:02:25.570 回答
3

我也尝试找到该答案,就目前而言,这是不可能的,我在多个(但不是所有接口)上搜索答案时发现了这一点。这就是出现的http://code.google.com/p/redis/issues/detail?id=497声明它不会被 redis 本身支持。

与 haproxy 结合使用,就不可能一次性将其放在 redis 前面。您需要使用不同的端口或其他端口,或者选择绑定 1 个 IP。

于 2013-06-06T09:14:15.773 回答
3

这对我有用的唯一方法是添加单独的行:

bind 111.222.33.44
bind 127.0.0.1 ::1
于 2019-11-15T16:52:36.160 回答
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

于 2021-02-20T03:37:53.477 回答