具有自定义集群配置的 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。
这样做你会得到一个你需要的配置集群。
我想创建一个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。
这样做你会得到一个你需要的配置集群。