redis3.x集群-添加新节点到集群中

1.新增一个redis,更改端口号为7006,同样放到7006文件夹中。

[root@server redisCluster]#mkdir 7006

[root@server redisCluster]# cp./7000/7000.conf  ./7006/7006.conf

[root@server redisCluster]#vi  ./7006/7006.conf

2.启动该redis节点服务。

# redis-server ./7006/7006.conf

3.查看redis服务是否启动。

# ps -ef|grep redis

[root@server redisCluster]# ps -ef|grepredis

root      1965    1  0 23:51 ?        00:00:00 redis-server192.168.8.150:7006 [cluster]

root      1970 2954  0 23:52 pts/0    00:00:00 grep redis

root      3537    1  0 Dec29 ?        00:04:14 redis-server192.168.8.150:7000 [cluster]

root      3550    1  0 Dec29 ?        00:04:18 redis-server192.168.8.150:7001 [cluster]

root      3562    1  0 Dec29 ?        00:04:18 redis-server192.168.8.150:7002 [cluster]

root      3575    1  0 Dec29 ?        00:04:17 redis-server192.168.8.150:7003 [cluster]

root      3587    1  0 Dec29 ?        00:04:10 redis-server192.168.8.150:7004 [cluster]

root      3654    1  0 Dec29 ?        00:04:15 redis-server 192.168.8.150:7005[cluster]

4.启动完成之后,进入redis安装目录下src目录下输入增加节点命令。

# cd redis-3.2.9/src/

# ./redis-trib.rb add-node 192.168.8.150:7006 192.168.8.150:7000

执行之后,成功提示:

>>> Adding node192.168.8.150:7006 to cluster 192.168.8.150:7000

>>> Performing ClusterCheck (using node 192.168.8.150:7000)

S: b15e99ebcbcffc1f221412716ee33b03c45a3e3b192.168.8.150:7000

   slots: (0 slots) slave

   replicatese4922caef55cca4793c16a1767c42602ca8cdb3b

M:4c8f74d896f0b550ae41211e04d5d4fbe44b2bd3 192.168.8.150:7001

   slots:5461-10922 (5462 slots) master

   1 additional replica(s)

M:7e21d69e8038185ea0a419fccfdeed99e7a6fdcb 192.168.8.150:7005

   slots:10923-16383 (5461 slots) master

   1 additional replica(s)

S:68f45e1b0c4832b6681565a8ddfcdb5195b7b1bd 192.168.8.150:7004

   slots: (0 slots) slave

   replicates 4c8f74d896f0b550ae41211e04d5d4fbe44b2bd3

M:e4922caef55cca4793c16a1767c42602ca8cdb3b 192.168.8.150:7003

   slots:0-5460 (5461 slots) master

   1 additional replica(s)

S:5289466e00cdb535512a3d4d4208b619f3313878 192.168.8.150:7002

   slots: (0 slots) slave  replicates 7e21d69e8038185ea0a419fccfdeed99e7a6fdcb

[OK]All nodes agree about slots configuration.

>>> Check for openslots...

>>> Check slotscoverage...

[OK]All16384 slots covered.

>>>Send CLUSTER MEET to node 192.168.8.150:7006 to make it join the cluster.

[OK] New node added correctly.

加入成功。

5. 使用redis-trib程序,将集群中的某些哈希槽移动到新节点里,这个新节点就成为真正的主节点了,还是在src目录下执行命令对集群中的哈希槽进行移动。

# cd redis-3.2.9/src/

# ./redis-trib.rb reshard 192.168.8.150:7000

执行后信息如下:

 [root@server src]# ./redis-trib.rb reshard192.168.8.150:7000

>>> Performing ClusterCheck (using node 192.168.8.150:7000)

S: b15e99ebcbcffc1f221412716ee33b03c45a3e3b192.168.8.150:7000

   slots: (0 slots) slave

   replicatese4922caef55cca4793c16a1767c42602ca8cdb3b

M:4c8f74d896f0b550ae41211e04d5d4fbe44b2bd3 192.168.8.150:7001

   slots:5461-10922 (5462 slots) master

   1 additional replica(s)

M: 7e21d69e8038185ea0a419fccfdeed99e7a6fdcb192.168.8.150:7005

   slots:10923-16383 (5461 slots) master

   1 additional replica(s)

S:68f45e1b0c4832b6681565a8ddfcdb5195b7b1bd 192.168.8.150:7004

   slots: (0 slots) slave

   replicates 4c8f74d896f0b550ae41211e04d5d4fbe44b2bd3

M:e4922caef55cca4793c16a1767c42602ca8cdb3b 192.168.8.150:7003

   slots:0-5460 (5461 slots) master

   1 additional replica(s)

M:82002358e7805a0151bcf63e6fb7255ad4b3d3a3192.168.8.150:7006

   slots: (0 slots) master

   0 additional replica(s)

S:5289466e00cdb535512a3d4d4208b619f3313878 192.168.8.150:7002

   slots: (0 slots) slave

   replicates7e21d69e8038185ea0a419fccfdeed99e7a6fdcb

[OK] All nodes agree about slotsconfiguration.

>>> Check for openslots...

>>> Check slotscoverage...

[OK] All 16384 slots covered.

How many slots do you

want to move (from 1 to 16384)? 1000(此处为想移动多少个哈希槽)

What is the receiving node ID? 82002358e7805a0151bcf63e6fb7255ad4b3d3a3(此处为移动到哪一个节点的id,应该为加入的新节点的id)

Please enter all the source nodeIDs.

  Type 'all' to use all the nodes as sourcenodes for the hash slots.

 Type 'done' once you entered all the source nodes IDs.

Source node #1:all此处选择all,全部使用并移动,表示从所有主节点中随机转移,凑够1000个哈希槽)

提示信息为,是否执行上述移动的计划,当然是yes、、、

如果输错了或者选择了no之后,就要重新执行移动。


输入错误之后直接取消了上述所有操作

输入yes之后执行,并转移完成。


转移成功后效果图


使用命令查看主节点集群的各个节点信息

命令如下

redis-cli -c -h 192.168.8.150 -p 7000 cluster nodes

操作后信息

[root@server src]# redis-cli -c -h 192.168.8.150 -p 7000 cluster nodes

4c8f74d896f0b550ae41211e04d5d4fbe44b2bd3192.168.8.150:7001master - 0 1514650927177 2connected 5795-10922

7e21d69e8038185ea0a419fccfdeed99e7a6fdcb192.168.8.150:7005master - 0 1514650926169 8connected 11256-16383

68f45e1b0c4832b6681565a8ddfcdb5195b7b1bd192.168.8.150:7004slave 4c8f74d896f0b550ae41211e04d5d4fbe44b2bd30 1514650927682 5 connected

e4922caef55cca4793c16a1767c42602ca8cdb3b192.168.8.150:7003master - 0 1514650927177 7connected 333-5460

b15e99ebcbcffc1f221412716ee33b03c45a3e3b192.168.8.150:7000 myself,slave e4922caef55cca4793c16a1767c42602ca8cdb3b0 0 1 connected

82002358e7805a0151bcf63e6fb7255ad4b3d3a3192.168.8.150:7006 master - 0 1514650926169 9 connected 0-332 5461-579410923-11255

5289466e00cdb535512a3d4d4208b619f3313878192.168.8.150:7002slave 7e21d69e8038185ea0a419fccfdeed99e7a6fdcb0 1514650927682 8 connected


6.如果添加的新节点作为从节点,那么就不必分配转移哈希槽给它了。

操作:

1)再次创建一个新的端口号为7007的redis服务


创建后的服务显示图

2)将新的redis节点加入集群中,和上述步骤一样

[root@server local]#cd /usr/local/redis-3.2.9/src/

[root@server src]# ./redis-trib.rb add-node 192.168.8.150:7007 192.168.8.150:7000

[OK] All nodes agree about slotsconfiguration.

>>> Check for openslots...

>>> Check slotscoverage...

[OK] All 16384 slots covered.

>>> Send CLUSTER MEETto node 192.168.8.150:7007 to make it join the cluster.

[OK] New node added correctly.

成功!

3)使用下面命令,将新加的7007节点成为7006节点的从节点。

# redis-cli -c -h 192.168.8.150 -p 7007 cluster replicate 82002358e7805a0151bcf63e6fb7255ad4b3d3a3

注意,最后面加的是7006主节点的ID。


执行成功图

成功。

3)输入查看集群信息命令查看各节点信息,验证是否成功加入。

# redis-cli -c -h 192.168.8.150 -p 7000 cluster nodes


节点信息图显示7007位7006的从节点

成功成为了7006的从节点。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容