将新服务器添加到Redis群集

时间:2018-02-26 14:59:29

标签: redis redis-cluster redis-cli

我刚刚设置了Redis cluster,工作正常。结构如下:

Server 1 | Server 2 | Server 3
Master A | Master B | Master C
Slave  B | Slave  C | Slave A

Master A <-> Slave A
Master B <-> Slave B
Master C <-> Slave C

我想知道将最新服务器添加到此群集的最佳做法是什么。

Server 4
Master ?
Slave  ?

当然,我可以通过./redis-trib.rb add-node添加新节点。有通用的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用$body = 'My #name is #Eminem, I am rap #god, #Yoyoya check it #out'; $hashtag_set = []; $array = explode('#', $body); foreach ($array as $key => $row) { $hashtag = []; if (!empty($row)) { $hashtag = explode(' ', $row); $hashtag_set[] = '#' . $hashtag[0]; } } print_r($hashtag_set); 命令将新节点添加到群集中。此命令强制两个节点互相作为可信节点,新添加的节点将通过八卦协议引入集群中的其他节点。

新添加的节点将是空主节点。为了把它变成另一个主节点的从属。您可以使用CLUSTER MEET命令。

在您的情况下,您可以执行以下步骤:

  1. 登录SLAVE-D
  2. 通过发送 MEET 命令将SLAVE-D加入群集:CLUSTER REPLICATE
  3. 通过发送 MEET 命令将MASTER-D加入群集:CLUSTER MEET MASTER-A-IP MATER-A-PORT
  4. 通过发送 REPLICATE 命令使SLAVE-D成为MASTER-D的奴隶:CLUSTER MEET MASTER-D-IP MATER-D-PORT