|NO.Z.00043|——————————|^^ 配置 ^^|——|Hadoop&Redis.V11|——|Redis.v11|集群扩容缩容.v01|
一、Redis集群扩容.主节点:Redis集群扩容:Redis集群缩容
### --- 扩容集群:扩容主节点
~~~ 添加主节点:先创建7007节点 (无数据)
[root@hadoop ~]# mkdir -p /opt/yanqi/servers/redis-cluster/7007
[root@hadoop ~]# cd /opt/yanqi/software/redis-5.0.5/src/
[root@hadoop src]# make install PREFIX=/opt/yanqi/servers/redis-cluster/7007/
[root@hadoop ~]# cp /opt/yanqi/servers/redis-cluster/7001/bin/redis.conf /opt/yanqi/servers/redis-cluster/7007/bin/
[root@hadoop ~]# vim /opt/yanqi/servers/redis-cluster/7007/bin/redis.conf
port 7007
### --- 添加7007结点作为新节点,并启动执行命令:
~~~ # 启动实例
[root@hadoop ~]# cd /opt/yanqi/servers/redis-cluster/7007/bin/
[root@hadoop bin]# ./redis-server redis.conf
[root@hadoop bin]# ps -ef | grep redis
root 14558 1 0 21:45 ? 00:00:00 ./redis-server *:7007 [cluster]
二、扩容集群
### --- 扩容实例
~~~ # 扩容集群
[root@hadoop bin]# ./redis-cli --cluster add-node 192.168.1.111:7007 \
192.168.1.111:7001
~~~ # 输出参数
>>> Adding node 192.168.1.111:7007 to cluster 192.168.1.111:7001
>>> Performing Cluster Check (using node 192.168.1.111:7001)
M: d1831c06b14dcc935549734a65c9973f59dcb1b1 192.168.1.111:7001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 2e591b916b6fb7280341bbc6b7d4256bce56e066 192.168.1.111:7006
slots: (0 slots) slave
replicates d1831c06b14dcc935549734a65c9973f59dcb1b1
S: 96033b241c0f1a328d95b59cb5b52fc043802958 192.168.1.111:7005
slots: (0 slots) slave
replicates c2e99f75b566197ded715bdf12ff5607d5c793c9
M: c2e99f75b566197ded715bdf12ff5607d5c793c9 192.168.1.111:7003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 16fa61286c999777ef0f56156750a7d18a8afd04 192.168.1.111:7004
slots: (0 slots) slave
replicates 313fcb7e815bab87426f81d21176f58fde9d0fc7
M: 313fcb7e815bab87426f81d21176f58fde9d0fc7 192.168.1.111:7002
slots:[5461-10922] (5462 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.
>>> Send CLUSTER MEET to node 192.168.1.111:7007 to make it join the cluster.
[OK] New node added correctly.
### --- 查看集群结点发现7007已添加到集群中
[root@hadoop bin]# ./redis-cli -h 127.0.0.1 -p 7001 -c
127.0.0.1:7001> cluster nodes
563754061e341652654c8a4c2728162d518d1321 192.168.1.111:7007@17007 master - 0 1631997533000 0 connected
2e591b916b6fb7280341bbc6b7d4256bce56e066 192.168.1.111:7006@17006 slave d1831c06b14dcc935549734a65c9973f59dcb1b1 0 1631997534000 6 connected
96033b241c0f1a328d95b59cb5b52fc043802958 192.168.1.111:7005@17005 slave c2e99f75b566197ded715bdf12ff5607d5c793c9 0 1631997534362 5 connected
c2e99f75b566197ded715bdf12ff5607d5c793c9 192.168.1.111:7003@17003 master - 0 1631997536383 3 connected 10923-16383
16fa61286c999777ef0f56156750a7d18a8afd04 192.168.1.111:7004@17004 slave 313fcb7e815bab87426f81d21176f58fde9d0fc7 0 1631997533000 4 connected
d1831c06b14dcc935549734a65c9973f59dcb1b1 192.168.1.111:7001@17001 myself,master - 0 1631997533000 1 connected 0-5460
313fcb7e815bab87426f81d21176f58fde9d0fc7 192.168.1.111:7002@17002 master - 0 1631997535372 2 connected 5461-10922
三、hash槽重新分配(数据迁移)
### --- 添加完主节点需要对主节点进行hash槽分配,这样该主节才可以存储数据。
~~~ 查看集群中槽占用情况
127.0.0.1:7001> cluster nodes
563754061e341652654c8a4c2728162d518d1321 192.168.1.111:7007@17007 master - 0 1631997554000 0 connected
2e591b916b6fb7280341bbc6b7d4256bce56e066 192.168.1.111:7006@17006 slave d1831c06b14dcc935549734a65c9973f59dcb1b1 0 1631997555550 6 connected
96033b241c0f1a328d95b59cb5b52fc043802958 192.168.1.111:7005@17005 slave c2e99f75b566197ded715bdf12ff5607d5c793c9 0 1631997556000 5 connected
c2e99f75b566197ded715bdf12ff5607d5c793c9 192.168.1.111:7003@17003 master - 0 1631997554544 3 connected 10923-16383
16fa61286c999777ef0f56156750a7d18a8afd04 192.168.1.111:7004@17004 slave 313fcb7e815bab87426f81d21176f58fde9d0fc7 0 1631997557565 4 connected
d1831c06b14dcc935549734a65c9973f59dcb1b1 192.168.1.111:7001@17001 myself,master - 0 1631997555000 1 connected 0-5460
313fcb7e815bab87426f81d21176f58fde9d0fc7 192.168.1.111:7002@17002 master - 0 1631997556557 2 connected 5461-10922
### --- redis集群有16384个槽,集群中的每个结点分配自已槽,
~~~ 通过查看集群结点可以看到槽占用情况。
127.0.0.1:7001> cluster nodes
563754061e341652654c8a4c2728162d518d1321 192.168.1.111:7007@17007 master - 0 1631997554000 0 connected
2e591b916b6fb7280341bbc6b7d4256bce56e066 192.168.1.111:7006@17006 slave d1831c06b14dcc935549734a65c9973f59dcb1b1 0 1631997555550 6 connected
96033b241c0f1a328d95b59cb5b52fc043802958 192.168.1.111:7005@17005 slave c2e99f75b566197ded715bdf12ff5607d5c793c9 0 1631997556000 5 connected
c2e99f75b566197ded715bdf12ff5607d5c793c9 192.168.1.111:7003@17003 master - 0 1631997554544 3 connected 10923-16383
16fa61286c999777ef0f56156750a7d18a8afd04 192.168.1.111:7004@17004 slave 313fcb7e815bab87426f81d21176f58fde9d0fc7 0 1631997557565 4 connected
d1831c06b14dcc935549734a65c9973f59dcb1b1 192.168.1.111:7001@17001 myself,master - 0 1631997555000 1 connected 0-5460
313fcb7e815bab87426f81d21176f58fde9d0fc7 192.168.1.111:7002@17002 master - 0 1631997556557 2 connected 5461-10922
四、给刚添加的7007节点分配槽
### --- 连接上集群(连接集群中任意一个可用结点都行)
[root@hadoop bin]# ./redis-cli --cluster reshard 192.168.1.111:7007
~~~ # 输出参数
>>> Performing Cluster Check (using node 192.168.1.111:7007)
M: 563754061e341652654c8a4c2728162d518d1321 192.168.1.111:7007
slots: (0 slots) master
S: 2e591b916b6fb7280341bbc6b7d4256bce56e066 192.168.1.111:7006
slots: (0 slots) slave
replicates d1831c06b14dcc935549734a65c9973f59dcb1b1
M: c2e99f75b566197ded715bdf12ff5607d5c793c9 192.168.1.111:7003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: 313fcb7e815bab87426f81d21176f58fde9d0fc7 192.168.1.111:7002
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 96033b241c0f1a328d95b59cb5b52fc043802958 192.168.1.111:7005
slots: (0 slots) slave
replicates c2e99f75b566197ded715bdf12ff5607d5c793c9
M: d1831c06b14dcc935549734a65c9973f59dcb1b1 192.168.1.111:7001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 16fa61286c999777ef0f56156750a7d18a8afd04 192.168.1.111:7004
slots: (0 slots) slave
replicates 313fcb7e815bab87426f81d21176f58fde9d0fc7
[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)? 3000
~~~ # 输入:3000,表示要给目标节点分配3000个槽
### --- 输入接收槽的结点id
What is the receiving node ID? 563754061e341652654c8a4c2728162d518d1321
~~~ # 输入:563754061e341652654c8a4c2728162d518d1321
~~~ # PS:这里准备给7007分配槽,通过cluster nodes查看7007结点id为:
563754061e341652654c8a4c2728162d518d1321
### --- 输入源结点id
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: all
~~~ # 输入all
### --- 输入yes开始移动槽到目标结点id
Do you want to proceed with the proposed reshard plan (yes/no)? yes
~~~ # 输入yes
Moving slot 976 from 192.168.1.111:7001 to 192.168.1.111:7007:
Moving slot 977 from 192.168.1.111:7001 to 192.168.1.111:7007:
Moving slot 978 from 192.168.1.111:7001 to 192.168.1.111:7007:
五、查看结果
127.0.0.1:7001> cluster nodes
563754061e341652654c8a4c2728162d518d1321 192.168.1.111:7007@17007 master - 0 1631997762000 7 connected 0-998 5461-6461 10923-11921
2e591b916b6fb7280341bbc6b7d4256bce56e066 192.168.1.111:7006@17006 slave d1831c06b14dcc935549734a65c9973f59dcb1b1 0 1631997763338 6 connected
96033b241c0f1a328d95b59cb5b52fc043802958 192.168.1.111:7005@17005 slave c2e99f75b566197ded715bdf12ff5607d5c793c9 0 1631997761000 5 connected
c2e99f75b566197ded715bdf12ff5607d5c793c9 192.168.1.111:7003@17003 master - 0 1631997764347 3 connected 11922-16383
16fa61286c999777ef0f56156750a7d18a8afd04 192.168.1.111:7004@17004 slave 313fcb7e815bab87426f81d21176f58fde9d0fc7 0 1631997762000 4 connected
d1831c06b14dcc935549734a65c9973f59dcb1b1 192.168.1.111:7001@17001 myself,master - 0 1631997759000 1 connected 999-5460
313fcb7e815bab87426f81d21176f58fde9d0fc7 192.168.1.111:7002@17002 master - 0 1631997763000 2 connected 6462-10922
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv012-redis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了