是否可以创建一个具有 2 个节点的 redis 集群,一个作为主节点,另一个作为从节点。
如果我尝试使用 2 个节点(一个作为主节点,另一个作为从节点),我会收到以下错误
>>> Creating cluster
Connecting to node 127.0.0.1:6379: OK
Connecting to node 192.168.40.159:6379: OK
*** ERROR: Invalid configuration for cluster creation.
*** Redis Cluster requires at least 3 master nodes.
*** This is not possible with 2 nodes and 1 replicas per node.
*** At least 6 nodes are required.
是的。至少 3 个主节点的要求由 ruby 脚本设置,但不是集群中的硬限制。
您需要做的第一件事是发送一个带有 16385 个参数的 cluster
命令
cluster addslots 0 1 2 3 ... 16384
到集群。由于在 redis-cli 中手动输入的参数太多,我建议编写一个程序来执行此操作,在其中打开一个连接到 redis 节点的 TCP 套接字,将先前的命令转换为 redis 命令字符串并写入到 socket 。
单节点集群将在您发送命令几秒后在线。然后用redis-cli连接到另外一个节点,输入如下命令让它成为slave
cluster meet MASTER_HOST MASTER_PORT
cluster replicate MASTER_ID
其中 MASTER_HOST:MASTER_PORT
是前一个节点的地址,MASTER_ID
是该节点的 ID,您可以通过 cluster nodes 检索它
命令。
为了方便我写了一个python工具来管理这些redis集群,你可以安装
pip install redis-trib
有关更多详细信息,请转到 https://github.com/HunanTV/redis-trib.py/