redis 集群只使用 2 个节点而不是 4 个

redis cluster only using 2 nodes instead of 4

我尝试在 4 个节点上设置一个 redis 集群,每个节点都有不同的 ip 和端口。

nohup ${install_dir}/redis-stable/src/redis-server ${install_dir}/${port}/node.conf &
let "port++"

for i in $ipb $ipc $ipd; do 
 ssh -i ~/.ssh/"ssh key" "sshid"@${i} /bin/bash << EOF
 nohup ${install_dir}/redis-stable/src/redis-server ${install_dir}/${port}/node.conf &
EOF
 let "port++"
done

# setup the cluster 
$install_dir/redis-stable/src/redis-cli --cluster create $ipa:7001 $ipb:7002 $ipc:7003 $ipd:7004 --cluster-replicas 0

这里的“文本”是为了匿名,但 ssh 工作正常。 问题是集群只在节点 2 (ipb) 上启动,有一个 2 节点集群:ipa 和 ipb。 在 ipc 和 ipd 上,redis-server 进程甚至没有启动。如果我关闭当前集群,它将启动一个带有 ipa 和 ipc 的 2 节点集群,然后如果我再次关闭,它将创建一个带有 ipd 和 ipa 的 2 节点集群。最后,如果我关闭这个,它就会关闭。我希望集群立即启动所有 4 个节点而不是 2 个节点,请问我应该如何修复才能得到这个?副本 0 是故意的,我不需要副本奴隶。 Node.conf 文件包含正确的端口、启用集群的 yes 等,与 redis 官方页面集群教程中的完全一样。 for 循环似乎是问题所在,但我在 EOF 中对另一个命令使用了完全相同的方法,并且效果很好。 我想尽可能避免添加节点然后重新分片技术,但如果没有其他选择...... 感谢您的帮助,如果您需要更多信息,请随时指出。如果我的错误不是redis相关的,而是我在bash.

中水平低下造成的,我深表歉意

编辑:我看到我有近 60 次浏览但没有答案,我该怎么做才能让我的问题更适合你们?还是那么愚蠢?

nohup ${install_dir}/redis-stable/src/redis-server ${install_dir}/${port}/node.conf >${port}.out 2>${port}.err < /dev/null &

重定向输入输出和错误解决问题。