使用redis-trib.rb创建集群时出现连接错误?

时间:2016-02-18 10:07:52

标签: redis redis-cluster

我的所有Redis服务器都配置如下:

硕士:192.168.0.106:7001,192.168.0.105.7001,192.168.0.112:7001

奴隶:192.168.0.106:7002,192.168.0.105:7002,192.168.0.122:7002

192.168.0.106:7002服务器是192.168.0.106:7001服务器的从属服务器,依此类推。我让所有服务器都运行起来,并且可以对所有服务器执行redis-cli。我可以看到17001和17002端口也打开了。但是当我跑步时:

./ redis-trib.rb create --replicas 1 192.168.0.106:7001 192.168.0.105:7001 192.168.0.112:7001 192.168.0.106:7002 192.168.0.105:7002 192.1268.0.112:7002

我收到错误:

创建群集

[错误]抱歉,无法连接到节点192.168.0.106:7001

我不知道如何在所有服务器正常工作且端口打开时如何排除故障?

有一点是我确实用密码保护了主人。也许redis-trib.rb无法处理受密码保护的服务器?

3 个答案:

答案 0 :(得分:2)

redis-trib.rb无法处理受密码保护的Redis节点。

因此尝试在此类节点上使用它会导致[错误]抱歉,无法连接到节点。

为什么redis-trib.rb实用程序不处理经过身份验证的节点?

这与以下事实有关:当Redis节点受密码保护时,只有主端口上的通信(默认为6379)受到保护。其集群总线上的通信(默认端口+ 10000 = 16379),其中集群中的节点彼此通信不受保护。因此,当单个节点存在时,Redis群集实际上不受密码保护。因此,在Redis群集中的各个Redis节点上设置密码几乎不会增加安全性。因此,redis-trib.rb实用程序尚未实现任何身份验证。

此处提供更多信息:

https://groups.google.com/forum/#!topic/redis-db/Z8lMxTfDct8

答案 1 :(得分:1)

我遇到了同样的问题。

但是检查我的实例的redis.conf我看到绑定选项被注释掉了,默认情况下Redis用*:port启动进程。

所以我将其添加到redis.conf,现在它完美无缺:

绑定0.0.0.0

如果出现此安全错误,您可能需要添加密码或指定正确的IP范围。

答案 2 :(得分:1)

当您使用外部IP时,而不是127.0.0.1。你必须在redis.conf中添加一个新行:“protected-mode no”

在教程“https://redis.io/topics/cluster-tutorial”中,您将看到必须在每个文件夹中创建一个redis.conf:7000,7001,...,7005

教程建议:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

您只需添加一个新行:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no

请记住保证机器防火墙内的安全。