Redis集群管理

来源:互联网 发布:天谕捏脸数据男生 编辑:程序博客网 时间:2024/06/06 19:00

原文链接:http://blog.csdn.net/xyang81/article/details/51895011

在上一篇《Redis3.2集群担建与验证》文章中分享了集群的详细担建过程,本篇主要分享集群管理的常见操作,如:添加节点、删除节点、slot分配。如果你还没有担建集群环境,建议先看上篇《Redis3.2集群担建与验证》过程,再来阅读本文比较好理解。

1、集群管理常用命令

<code class="hljs r has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">// 集群(cluster)  CLUSTER INFO                                打印集群的状态信息  CLUSTER NODES                               列出集群当前已知的所有节点(node),以及这些节点的相关信息 // 节点(node)  CLUSTER MEET <ip> <port>                    将ip和port所指定的节点添加到集群当中,让它成为集群的一份子CLUSTER FORGET <node_id>                    从集群中移除node_id指定的节点CLUSTER REPLICATE <node_id>                 将当前节点设置为node_id指定节点的从节点CLUSTER SAVECONFIG                          将当前节点的配置信息手动保存到硬盘(nodes-port.conf) CLUSTER SLAVES <master_node_id>             查询指定的master_node_id主节点有哪些从(slave)节点// 槽(slot)  CLUSTER ADDSLOTS <slot> [slot <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">...</span>]          将一个或多个槽(slot)指派(assign)给当前节点CLUSTER DELSLOTS <slot> [slot <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">...</span>]          将一个或多个槽从当前节点移除CLUSTER FLUSHSLOTS                          移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点CLUSTER SETSLOT <slot> NODE <node_id>       将当前节点指定的槽(slot)指派给node_id指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽,然后再进行指派CLUSTER SETSLOT <slot> MIGRATING <node_id>  将当前节点指定的槽(slot)迁移到node_id指定的节点中CLUSTER SETSLOT <slot> IMPORTING <node_id>  从node_id指定节点中的槽(slot)导入到当前节点CLUSTER SETSLOT <slot> STABLE               取消对当前节点指定槽(slot)的导入(import)或者迁移(migrate)CLUSTER SLOTS                               查看槽(slot)在集群中的分配情况// 键 (key)  CLUSTER KEYSLOT <key>                       计算键key应该被分配在哪个槽上  CLUSTER COUNTKEYSINSLOT <slot>              返回指定槽(slot)保存key的数量  CLUSTER GETKEYSINSLOT <slot> <count>        获取指定槽(slot)中count个key,如果指定槽中大于count个key,则只返回前cout个key,小于或为空,则返回最多数量的key </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li></ul>

以上命令是集群特有的,必须登录到Redis集群才能使用。注释中提到的当前节点,指登录到集群中指定的节点。如:redis-cli -h 192.168.0.201 -p 6379,当前登录的节点就是192.168.0.201:6379。 
更多集群管理命令请参考官网:http://redis.io/commands/cluster-addslots

<code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">shell</span>> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">redis-cli</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-c</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-h</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-p</span> 6379127<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.1</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6379</span>> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">cluster</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">nodes</span>459<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">dbcccc1e5be021f19efde794b9e84474c0c02</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.202</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:16379</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">b6814c717080de33907e6f769e1fd8dc4fe53c38</span> 0 1468339459776 11 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span>06023<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f8283389ad5580c782797f49a5996c108b3</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6379</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">myself</span>,<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">master</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span> 0 0 10 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span> 500<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-11255</span>91179<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">b96d9b8abce85fa7a5748aa9b4114f0b260</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.202</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:16380</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> 06023<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f8283389ad5580c782797f49a5996c108b3</span> 0 1468339462797 10 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span><span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">ef8a49e5242c791551f1b317d5039144e38acde6</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6380</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> 13567<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f6f8787d3aa3f4ef3abd15c2cc500a1469b</span> 0 1468339466819 8 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span><span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">b6814c717080de33907e6f769e1fd8dc4fe53c38</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6381</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">master</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span> 0 1468339465813 11 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span> 0<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-499</span>13567<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f6f8787d3aa3f4ef3abd15c2cc500a1469b</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.202</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:16381</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">master</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span> 0 1468339463802 8 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span> 11256<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-16383</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul>

2、添加节点

添加一对(一主一从)新的节点加入到集群当中:192.168.0.201:6382(Master)和192.168.0.201:6383(Slave),文中简称201:6381和201:16382。节点添加方式请参考《Redis3.2集群担建与验证》

1> 添加master节点

<code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">shell</span>> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">redis-trib</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.rb</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">add-node</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6382</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6379</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

参数说明: 
192.168.0.201:6382:新节点 
192.168.0.201:6379:可以是集群中的任意一个节点(这里以201:6379为例)

注意: 
1> 新的节点必须开启了集群配置 
2> 新的节点必须已启动 
如果不同时满足以上两点,将无法加入到集群中。成功加入集群后,会打印如下信息: 
添加新的master节点

2> 为master节点分配slot

当往Redis集群中存储一份数据时,redis根据key的hash值对16384(slot)取模,算出负责指定slot范围内的某个节点来存储这个key。集群在第一次创建的时候,会给每个master节点在16384个slot中平均分配相应的slot数量,而后面新加入的master节点默认是不会分配slot的。所以我们需要手动为新加入的节点分配一定范围的slot,以便集群在存取数据的时候,能够找到这个新加入的节点。

<code class="hljs r has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">[root@localhost redis-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3.2</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>]<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># redis-cli cluster nodes</span>901cade1bc2703ef2bb4ff49466b38762346755d <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6382</span> master - <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1468324422110</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> connected06023f8283389ad5580c782797f49a5996c108b3 <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6379</span> myself,master - <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> connected <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5460</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">...</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul>

sloat范围显示在节点状态(connected)后边,从上可以看出,新加入的节点201:6382是没有分配slot的,所以为空。而为201:6379节点分配了0-5460范围的slot。 
为新节点分配slot的原理是从其它主节点中负责的slot中,各移出一部份 
slot给新的节点。下面为201:6382分配slot:

<code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">shell</span>> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">redis-trib</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.rb</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">reshard</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6382</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

为新master节点分配slot过程 
注意上图中红框部份: 
1> 1000 : 为新的master节点分配1000个slot 
2> 901cade1bc2703ef2bb4ff49466b38762346755d:接收1000个slot的master节点ID 
3> 选择从哪些主节点移动slot到新加入的主节点中: 
* all:表示从集群中所有master节点中各移动一部份slot,凑够1000个slot为止 
* 选择输入一个或多个master的node_id来从中移动,最后输入done完成选择 
4> yes:执行slot移动操作,输入no表示终止操作。 
下面看下新的集群节点及slot分布情况:

<code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-attr_selector" style="color: rgb(0, 136, 0); box-sizing: border-box;">[root@localhost redis-3.2.0]</span># <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">redis-cli</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">cluster</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">nodes</span>901<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">cade1bc2703ef2bb4ff49466b38762346755d</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6382</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">master</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span> 0 1468325773988 9 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span> 0<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-332</span> 5461<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-5794</span> 10923<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-11255</span>459<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">dbcccc1e5be021f19efde794b9e84474c0c02</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.202</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:16379</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">b6814c717080de33907e6f769e1fd8dc4fe53c38</span> 0 1468325769968 7 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span>06023<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f8283389ad5580c782797f49a5996c108b3</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6379</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">myself</span>,<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">master</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span> 0 0 1 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span> 333<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-5460</span>91179<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">b96d9b8abce85fa7a5748aa9b4114f0b260</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.202</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:16380</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> 06023<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f8283389ad5580c782797f49a5996c108b3</span> 0 1468325775495 5 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span><span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">ef8a49e5242c791551f1b317d5039144e38acde6</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6380</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> 13567<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f6f8787d3aa3f4ef3abd15c2cc500a1469b</span> 0 1468325772982 8 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span><span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">b6814c717080de33907e6f769e1fd8dc4fe53c38</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6381</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">master</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span> 0 1468325771976 7 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span> 5795<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-10922</span>13567<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f6f8787d3aa3f4ef3abd15c2cc500a1469b</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.202</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:16381</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">master</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span> 0 1468325774992 8 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span> 11256<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-16383</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul>

已经成功为201:6382节点分配了0-332、5461-5794、10923-11255范围的slot,可以看出redis从其它三个master节点中均匀的移动了一部份slot到201:6382中。

3> 添加slave节点

下面为201:6382 master节点添加一个slave节点201:6383

<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">shell</span>> redis-trib.rb <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">add</span>-node <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--slave --master-id 901cade1bc2703ef2bb4ff49466b38762346755d 192.168.0.201:6383 192.168.0.201:6379</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

参数说明: 
1> –slave:表示添加从节点 
2> –master-id:master节点ID,这里用上边新添加的主节点ID(201:6382) 
3> 192.168.0.201:6383:新slave节点的IP和端口 
4> 192.168.0.201:6379:集群中任意旧节点,只要能连上就可以。这里以201:6379为例

添加slave节点成功后集群中的节点状态:

<code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-attr_selector" style="color: rgb(0, 136, 0); box-sizing: border-box;">[root@localhost redis-3.2.0]</span># <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">redis-cli</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">cluster</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">nodes</span>901<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">cade1bc2703ef2bb4ff49466b38762346755d</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6382</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">master</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span> 0 1468333842665 9 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span> 0<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-332</span> 5461<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-5794</span> 10923<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-11255</span>459<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">dbcccc1e5be021f19efde794b9e84474c0c02</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.202</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:16379</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">b6814c717080de33907e6f769e1fd8dc4fe53c38</span> 0 1468333841661 7 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span>9080<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">c5049615730c66731b54cb084999009eeb52</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6383</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> 901<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">cade1bc2703ef2bb4ff49466b38762346755d</span> 0 1468333843669 9 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span>06023<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f8283389ad5580c782797f49a5996c108b3</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6379</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">myself</span>,<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">master</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span> 0 0 1 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span> 333<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-5460</span>91179<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">b96d9b8abce85fa7a5748aa9b4114f0b260</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.202</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:16380</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> 06023<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f8283389ad5580c782797f49a5996c108b3</span> 0 1468333844674 5 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span><span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">ef8a49e5242c791551f1b317d5039144e38acde6</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6380</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> 13567<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f6f8787d3aa3f4ef3abd15c2cc500a1469b</span> 0 1468333842665 8 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span><span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">b6814c717080de33907e6f769e1fd8dc4fe53c38</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6381</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">master</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span> 0 1468333845678 7 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span> 5795<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-10922</span>13567<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f6f8787d3aa3f4ef3abd15c2cc500a1469b</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.202</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:16381</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">master</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span> 0 1468333846685 8 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span> 11256<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">-16383</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul>

very good~ 可以看出,201:6383以成功添加为一个slave节点,并将201:6382作为master节点。

cluster nodes命令列表的节点状态信息说明:

<code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">459<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">dbcccc1e5be021f19efde794b9e84474c0c02</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.202</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:16379</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">b6814c717080de33907e6f769e1fd8dc4fe53c38</span> 0 1468333841661 7 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

1> 459dbcccc1e5be021f19efde794b9e84474c0c02 :节点ID 
2> 192.168.0.202:16379:节点IP和端口 
3> slave:节点类型,master、slave或myself(master/slave) 
4> b6814c717080de33907e6f769e1fd8dc4fe53c38 :master节点ID,如果自己是master节点,这一列的值为0 
5> 0:集群最近一次向节点发送 PING 命令之后, 过去了多长时间还没接到回复。 
6> 1468333841661:节点最近一次返回 PONG 回复的时间 
7> 7:节点的配置纪元 
8> connected:节点网络连接状态 
9> 如果是主节点,节点状态后边显示slot分配的范围

3、改变slave节点的master

将上边新加的slave节点(201:6383)的master,修改为201:6379(06023f8283389ad5580c782797f49a5996c108b3)

<code class="hljs lasso has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">shell<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">></span> redis<span class="hljs-attribute" style="box-sizing: border-box;">-cli</span> <span class="hljs-attribute" style="box-sizing: border-box;">-h</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span> <span class="hljs-attribute" style="box-sizing: border-box;">-p</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6383</span> cluster nodes <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">|</span> grep myself<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9080</span>c5049615730c66731b54cb084999009eeb52 <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6383</span> myself,slave <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">901</span>cade1bc2703ef2bb4ff49466b38762346755d <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> connected</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul>

当前slave节点201:6383的master节点是901cade1bc2703ef2bb4ff49466b38762346755d

<code class="hljs lasso has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">shell<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">></span> redis<span class="hljs-attribute" style="box-sizing: border-box;">-cli</span> <span class="hljs-attribute" style="box-sizing: border-box;">-h</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span> <span class="hljs-attribute" style="box-sizing: border-box;">-p</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6383</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6383</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">></span> cluster replicate <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">06023</span>f8283389ad5580c782797f49a5996c108b3</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul>

06023f8283389ad5580c782797f49a5996c108b3:新master节点的ID

<code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6383</span>> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">CLUSTER</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">SLAVES</span> 06023<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f8283389ad5580c782797f49a5996c108b3</span>1) "91179<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">b96d9b8abce85fa7a5748aa9b4114f0b260</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.202</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:16380</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> 06023<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f8283389ad5580c782797f49a5996c108b3</span> 0 1468336124600 1 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span>"2) "9080<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">c5049615730c66731b54cb084999009eeb52</span> 192<span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.168</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.0</span><span class="hljs-class" style="box-sizing: border-box; color: rgb(155, 112, 63);">.201</span><span class="hljs-pseudo" style="color: rgb(0, 0, 0); box-sizing: border-box;">:6383</span> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">myself</span>,<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">slave</span> 06023<span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">f8283389ad5580c782797f49a5996c108b3</span> 0 0 0 <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">connected</span>"</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>

可以看出201:6383 slave节点已经是201:6379 master节点的子节点了。

4、删除节点

1> 删除slave节点

<code class="hljs python has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">[root<span class="hljs-decorator" style="color: rgb(0, 102, 102); box-sizing: border-box;">@localhost redis-3.2.0]# redis-trib.rb del-node 192.168.0.201:6383 9080c5049615730c66731b54cb084999009eeb52</span><span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">>>> </span>Removing node <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9080</span>c5049615730c66731b54cb084999009eeb52 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">from</span> cluster <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6383</span><span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">>>> </span>Sending CLUSTER FORGET messages to the cluster...<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">>>> </span>SHUTDOWN the node.</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul>

参数说明: 
1> del-node:删除节点参数 
2> 192.168.0.201:6383:节点IP和端口 
3> 9080c5049615730c66731b54cb084999009eeb52:节点ID 
节点成功删除后,会同时将进程杀死

从节点重新恢复后,先cluster meet ip port将从节点加入集群,然后设置自己的mastercluster replication master_node_id

2、删除master节点

注意: 
1> 如果master节点有slot,必须先将所有slot分配给其它master节点。否则会提示你先将slot移除再尝试删除,如下所示:

<code class="hljs python has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">shell> redis-trib.rb <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">del</span>-node <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6382</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">901</span>cade1bc2703ef2bb4ff49466b38762346755d<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">>>> </span>Removing node <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">901</span>cade1bc2703ef2bb4ff49466b38762346755d <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">from</span> cluster <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6382</span>[ERR] Node <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6382</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">is</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span> empty! Reshard data away <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">try</span> again.</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>

2> 如果master节点有slave节点,先将slave节点移到其它master下

  • 移除201:6382 master节点的slot
<code class="hljs r has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">[root@localhost redis-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3.2</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>]<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># redis-trib.rb reshard 192.168.0.201:6382</span>>>> Performing Cluster Check (using node <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6382</span>)M: 901cade1bc2703ef2bb4ff49466b38762346755d <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6382</span>   slots:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">332</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5461</span>-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5794</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">10923</span>-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">11255</span> (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1000</span> slots) master   <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> additional replica(s)M: 06023f8283389ad5580c782797f49a5996c108b3 <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6379</span>   slots:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">333</span>-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5460</span> (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5128</span> slots) master   <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> additional replica(s)<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">...</span>[OK] All nodes agree about slots configuration.>>> Check <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> open slots...>>> Check slots coverage...[OK] All <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">16384</span> slots covered.How many slots do you want to move (from <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> to <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">16384</span>)? <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1000</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 201:6382一共1000个slot</span>What is the receiving node ID? 06023f8283389ad5580c782797f49a5996c108b3 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 接收这1000个slot的节点ID</span>Please enter all the <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">source</span> node IDs.  Type <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'all'</span> to use all the nodes as <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">source</span> nodes <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> the hash slots.  Type <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'done'</span> once you entered all the <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">source</span> nodes IDs.Source node <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#1:901cade1bc2703ef2bb4ff49466b38762346755d # 移除这1000个slot的master节点ID(这里同样是201:6382)</span>Source node <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#2:done</span>....Do you want to proceed with the proposed reshard plan (yes/no)? yes</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li></ul>

新增master节点后,也进行了这一步操作,当时是分配,现在是去掉,反着的。

  • 删除master节点
<code class="hljs python has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">shell> redis-trib.rb <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">del</span>-node <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6382</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">901</span>cade1bc2703ef2bb4ff49466b38762346755d<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">>>> </span>Removing node <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">901</span>cade1bc2703ef2bb4ff49466b38762346755dfrom cluster <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.201</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6382</span><span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">>>> </span>Sending CLUSTER FORGET messages to the cluster...<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">>>> </span>SHUTDOWN the node.</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul>

此时新的master节点也被删除了,回到了添加节点之前的状态。

0 0
原创粉丝点击