Redis5.0.8 09 redis集群扩容

迁移槽和数据:
扩容流程图:




++++++++
先在 redis01 192.168.189.14 上面创建两个新节点

mkdir -p /usr/local/redis_cluster/redis_{6390,6391}/{conf,logs,pid}

mkdir -p /data/redis_cluster/redis_{6390,6391}

将189.14 6380----6381 的配置文件拷贝到 6390----6391 对应目录

cd /usr/local/redis_cluster/

cp redis_6380/conf/redis_6380.conf redis_6390/conf/redis_6390.conf

cp redis_6381/conf/redis_6381.conf redis_6391/conf/redis_6391.conf

修改端口号: 6380改成6390 6381改成6391
sed -i 's#6380#6390#g' redis_6390/conf/redis_6390.conf
sed -i 's#6381#6391#g' redis_6391/conf/redis_6391.conf

启动刚才创建的节点:
/root/redis_shell.sh start 6390
/root/redis_shell.sh start 6391

或者 redis-server /usr/local/redis_cluster/redis_6390/conf/redis_6390.conf

redis-server /usr/local/redis_cluster/redis_6391/conf/redis_6391.conf



一、添加节点:
redis-cli --cluster add-node 192.168.189.14:6390 192.168.189.15:6380



redis-cli --cluster add-node 192.168.189.14:6391 192.168.189.16:6381



说明:为一个指定集群添加节点,需要先连到该集群的任意一个节点IP(192.168.189.15:6380),再把新节点加入。该2个参数的顺序有要求:新加入的节点写在前面

二、分配槽位:

直接连接到集群的任意一主节点

redis-cli --cluster reshard 192.168.189.14:6380









redis-cli --cluster rebalance 192.168.189.14:6380 #指定集群的任意一节点进行平衡集群节点slot数量



三、调整主从复制:

登录集群,查看节点信息


原有节点,主从复制关系。




新增节点后的标准主从复制关系:




只需要调整两个节点,就可以了,把 189.14 6381的主改为189.14 6390 189.14 6391的主改为189.16 6380

注意:
现实中新加的节点最好是独立一台服务器,不要和其他节点服务器放在一起,因为,如果一台服务器上有多个节点,这台服务器坏了,你的集群也就坏了。上面的例子中,189.14 6390 6391可以看成是一台独立服务器,我们此处是实验环境。
查看节点的ID(任意一台上面操作)

redis-cli -h 192.168.189.14 -p 6380 cluster nodes|awk '{print $1,$2 }'
09c6d94297ab77dd42f856ea0edeb54d5de01d5a 192.168.189.14:6391@16391

a7551a4133b3adfe394f89853cbf64ad1435716e 192.168.189.14:6390@16390

23a70a101e1c5bb4381b10ab5b862218e7b0f67d 192.168.189.16:6380@16380

0b362e34bbbf0827de9a32aa932f2aa1d7b67877 192.168.189.14:6380@16380

ebe7336ab697ef86024a5c124fe9c141f16b111c 192.168.189.16:6381@16381

d5fa45ded514aec66a54bb6b358f7bad5547b8c9 192.168.189.14:6381@16381

90c8602bf50662154d0d36adbf9efe5f0ce9854d 192.168.189.15:6380@16380

42295fb6ef6814530fa58647998cc7f06b899c88 192.168.189.15:6381@16381

++++++++

redis-cli -h 192.168.189.14 -p 6381 cluster replicate a7551a4133b3adfe394f89853cbf64ad1435716e

redis-cli -h 192.168.189.14 -p 6391 cluster replicate 23a70a101e1c5bb4381b10ab5b862218e7b0f67d

登录集群,查看节点信息。



集群检查命令:(任意一台服务器上都可以操作)

redis-cli --cluster check 192.168.189.14:6380