【发布时间】:2021-06-17 10:40:27
【问题描述】:
我尝试在 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 次观看但没有答案,我能做些什么来让我的问题对你们更好?还是那么傻?
【问题讨论】:
标签: bash redis redis-cluster redis-server