具有自定义集群配置的 Redis 集群

Redis Cluster with custom cluster config

我想创建一个redis集群,只有特定的redis主机是master和slave。我也想自己指定哪个主机应该是哪个主机的副本。
目前,cluster-create command 在给定任何一个 redis 主节点中的 hostname:port 参数列表时创建一个集群。但这不允许我们根据需要提供自定义配置。它向我们建议将创建什么,我们可以批准或取消(不是编辑)。

有什么简单的方法可以实现我的目标吗?

我自己想出了一个好简单的方法。

假设我们要将集群创建为:

A1-S1 
A2-S2
A3-S3

其中A是master,S是它们对应的slave,这形成了一个单一的集群。这些步骤将包括。

  • 在启动 redis 实例之前写入 nodes.conf 以在 connected 字符串之后附加所需的插槽哈希。确保 master 和 slave 具有相同的槽哈希值。仅对包含 myself 的行执行此操作。这看起来像这样:
Earlier:
a252d572140fd2b5410d4a63d051f1e6613cfd1f :6379@16379 myself,slave 0 0 0 connected

Final:
a252d572140fd2b5410d4a63d051f1e6613cfd1f :6379@16379 myself,slave 0 0 0 connected 0-5500

在此之后启动 redis 个实例。

  • 现在为每一对主从做一个集群会议。为 A1、A2 和 A3 各做 3 cluster meet 次。这连接了主从。
  • 如果碰巧master在meet操作后变成了slave,从slave做一个cluster failover让它成为master。
  • 最后,运行 2 个 cluster meet 用于 A1-A2 和 A2-A3。

这样做你会得到一个你需要的配置集群。