linux-redis cluster 集群扩容

前言

如果redis cluster集群内存不够用了,就会涉及到扩容的情况。

linux-redis cluster 集群扩容


环境介绍

现有节点:127.0.0.1 8001-8006

新增节点:127.0.0.1 8007-8008

同样的新节点需要启用cluster配置,并修改成对应的端口:

port 8007

cluster-enabled yes

cluster-config-file nodes-8007.conf

cluster-node-timeout 15000


port 8008

cluster-enabled yes

cluster-config-file nodes-8008.conf

cluster-node-timeout 15000


启动新增节点

/opt/redis/bin/redis-server /opt/redis/etc/redis-8007.conf

/opt/redis/bin/redis-server /opt/redis/etc/redis-8008.conf

linux-redis cluster 集群扩容


查看当前节点情况

/opt/redis/bin/redis-cli -p 8001 -c cluster nodes

763112edb3a90acc27c510b38b7532381b3399f8 127.0.0.1:8002@18002 master - 0 1534498218146 2 connected 5461-10922

950e16960702ca43fbdae7f99682f465aa668314 127.0.0.1:8004@18004 slave 0e68888bab88379a08f72b92c8bcdfa2f48a65d4 0 1534498219000 4 connected

808bb8f2f2bdc8a4215c979d6be350eb0f6f3ef0 127.0.0.1:8005@18005 slave 599582d756a1df2de75ecb34394ecbf00d147c7c 0 1534498215000 5 connected

5cdf4e00589df7372fd4115027e16dbdec59ec3e 127.0.0.1:8006@18006 slave 763112edb3a90acc27c510b38b7532381b3399f8 0 1534498219150 6 connected

0e68888bab88379a08f72b92c8bcdfa2f48a65d4 127.0.0.1:8003@18003 master - 0 1534498219000 3 connected 10923-16383

599582d756a1df2de75ecb34394ecbf00d147c7c 127.0.0.1:8001@18001 myself,master - 0 1534498216000 1 connected 0-5460

添加一个master节点

/opt/redis/bin/redis-trib.rb add-node 127.0.0.1:8007 127.0.0.1:8001

查看节点信息

/opt/redis/bin/redis-cli -p 8001 -c cluster nodes

763112edb3a90acc27c510b38b7532381b3399f8 127.0.0.1:8002@18002 master - 0 1534498374729 2 connected 5461-10922

31606b0c96906d55708459c6e70ffa75bb8add46 127.0.0.1:8007@18007 master - 0 1534498370000 7 connected 0

950e16960702ca43fbdae7f99682f465aa668314 127.0.0.1:8004@18004 slave 0e68888bab88379a08f72b92c8bcdfa2f48a65d4 0 1534498370000 4 connected

808bb8f2f2bdc8a4215c979d6be350eb0f6f3ef0 127.0.0.1:8005@18005 slave 599582d756a1df2de75ecb34394ecbf00d147c7c 0 1534498371000 5 connected

5cdf4e00589df7372fd4115027e16dbdec59ec3e 127.0.0.1:8006@18006 slave 763112edb3a90acc27c510b38b7532381b3399f8 0 1534498373725 6 connected

0e68888bab88379a08f72b92c8bcdfa2f48a65d4 127.0.0.1:8003@18003 master - 0 1534498372000 3 connected 10923-16383

599582d756a1df2de75ecb34394ecbf00d147c7c 127.0.0.1:8001@18001 myself,master - 0 1534498370000 1 connected 1-5460

给新增的master添加一个slave

/opt/redis/bin/redis-trib.rb add-node --slave --master-id 31606b0c96906d55708459c6e70ffa75bb8add46 127.0.0.1:8008 127.0.0.1:8001

查看节点信息

/opt/redis/bin/redis-cli -p 8001 -c cluster nodes

763112edb3a90acc27c510b38b7532381b3399f8 127.0.0.1:8002@18002 master - 0 1534498374729 2 connected 5461-10922

b5677d2a5191382409e60835d8cdd7e31c6cb3f5 127.0.0.1:8008@18008 slave 31606b0c96906d55708459c6e70ffa75bb8add46 0 1534498372000 7 connected

31606b0c96906d55708459c6e70ffa75bb8add46 127.0.0.1:8007@18007 master - 0 1534498370000 7 connected 0

950e16960702ca43fbdae7f99682f465aa668314 127.0.0.1:8004@18004 slave 0e68888bab88379a08f72b92c8bcdfa2f48a65d4 0 1534498370000 4 connected

808bb8f2f2bdc8a4215c979d6be350eb0f6f3ef0 127.0.0.1:8005@18005 slave 599582d756a1df2de75ecb34394ecbf00d147c7c 0 1534498371000 5 connected

5cdf4e00589df7372fd4115027e16dbdec59ec3e 127.0.0.1:8006@18006 slave 763112edb3a90acc27c510b38b7532381b3399f8 0 1534498373725 6 connected

0e68888bab88379a08f72b92c8bcdfa2f48a65d4 127.0.0.1:8003@18003 master - 0 1534498372000 3 connected 10923-16383

599582d756a1df2de75ecb34394ecbf00d147c7c 127.0.0.1:8001@18001 myself,master - 0 1534498370000 1 connected 1-5460

执行rebalance

/opt/redis/bin/redis-trib.rb rebalance --threshold 2 127.0.0.1:8001

>>> Performing Cluster Check (using node 127.0.0.1:8001)

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

*** No rebalancing needed! All nodes are within the 2.0% threshold.

发现没有slot迁移,这时候就要手动先迁移一个slot到新的节点就可以了。

/opt/redis/bin/redis-trib.rb reshard 127.0.0.1:8001

>>> Performing Cluster Check (using node 127.0.0.1:8001)

M: 599582d756a1df2de75ecb34394ecbf00d147c7c 127.0.0.1:8001

slots:0-5460 (5461 slots) master

1 additional replica(s)

M: 763112edb3a90acc27c510b38b7532381b3399f8 127.0.0.1:8002

slots:5461-10922 (5462 slots) master

1 additional replica(s)

S: b5677d2a5191382409e60835d8cdd7e31c6cb3f5 127.0.0.1:8008

slots: (0 slots) slave

replicates 31606b0c96906d55708459c6e70ffa75bb8add46

M: 31606b0c96906d55708459c6e70ffa75bb8add46 127.0.0.1:8007

slots: (0 slots) master

1 additional replica(s)

S: 950e16960702ca43fbdae7f99682f465aa668314 127.0.0.1:8004

slots: (0 slots) slave

replicates 0e68888bab88379a08f72b92c8bcdfa2f48a65d4

S: 808bb8f2f2bdc8a4215c979d6be350eb0f6f3ef0 127.0.0.1:8005

slots: (0 slots) slave

replicates 599582d756a1df2de75ecb34394ecbf00d147c7c

S: 5cdf4e00589df7372fd4115027e16dbdec59ec3e 127.0.0.1:8006

slots: (0 slots) slave

replicates 763112edb3a90acc27c510b38b7532381b3399f8

M: 0e68888bab88379a08f72b92c8bcdfa2f48a65d4 127.0.0.1:8003

slots:10923-16383 (5461 slots) master

1 additional replica(s)

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

How many slots do you want to move (from 1 to 16384)? 1

What is the receiving node ID? 31606b0c96906d55708459c6e70ffa75bb8add46

Please enter all the source node IDs.

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

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

Source node #1:599582d756a1df2de75ecb34394ecbf00d147c7c

Source node #2:done

Ready to move 1 slots.

Source nodes:

M: 599582d756a1df2de75ecb34394ecbf00d147c7c 127.0.0.1:8001

slots:0-5460 (5461 slots) master

1 additional replica(s)

Destination node:

M: 31606b0c96906d55708459c6e70ffa75bb8add46 127.0.0.1:8007

slots: (0 slots) master

1 additional replica(s)

Resharding plan:

Moving slot 0 from 599582d756a1df2de75ecb34394ecbf00d147c7c

Do you want to proceed with the proposed reshard plan (yes/no)? yes

Moving slot 0 from 127.0.0.1:8001 to 127.0.0.1:8007:

完成后,再执行rebalance

/opt/redis/bin/redis-trib.rb rebalance --threshold 2 127.0.0.1:8001

>>> Performing Cluster Check (using node 127.0.0.1:8001)

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

>>> Rebalancing across 4 nodes. Total weight = 4

Moving 1366 slots from 127.0.0.1:8002 to 127.0.0.1:8007

######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

Moving 1365 slots from 127.0.0.1:8003 to 127.0.0.1:8007

#####################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

Moving 1364 slots from 127.0.0.1:8001 to 127.0.0.1:8007

####################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

这样子就可以均衡成功了。

查看节点信息

/opt/redis/bin/redis-cli -p 8001 -c cluster nodes

763112edb3a90acc27c510b38b7532381b3399f8 127.0.0.1:8002@18002 master - 0 1534499202984 2 connected 6827-10922

b5677d2a5191382409e60835d8cdd7e31c6cb3f5 127.0.0.1:8008@18008 slave 31606b0c96906d55708459c6e70ffa75bb8add46 0 1534499201981 7 connected

31606b0c96906d55708459c6e70ffa75bb8add46 127.0.0.1:8007@18007 master - 0 1534499200978 7 connected 0-1364 5461-6826 10923-12287

950e16960702ca43fbdae7f99682f465aa668314 127.0.0.1:8004@18004 slave 0e68888bab88379a08f72b92c8bcdfa2f48a65d4 0 1534499203987 4 connected

808bb8f2f2bdc8a4215c979d6be350eb0f6f3ef0 127.0.0.1:8005@18005 slave 599582d756a1df2de75ecb34394ecbf00d147c7c 0 1534499201000 5 connected

5cdf4e00589df7372fd4115027e16dbdec59ec3e 127.0.0.1:8006@18006 slave 763112edb3a90acc27c510b38b7532381b3399f8 0 1534499199975 6 connected

0e68888bab88379a08f72b92c8bcdfa2f48a65d4 127.0.0.1:8003@18003 master - 0 1534499201000 3 connected 12288-16383

599582d756a1df2de75ecb34394ecbf00d147c7c 127.0.0.1:8001@18001 myself,master - 0 1534499202000 1 connected 1365-5460

¥51.3
购买

相关推荐