0

我尝试在 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 次观看但没有答案,我该怎么做才能让我的问题对你们更好?还是那么愚蠢?

4

1 回答 1

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

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

于 2021-03-24T22:43:06.107 回答