安装、搭建三主三从集群等参考我的另一篇博客:https://blog.csdn.net/HumorChen99/article/details/112823945
热扩容,加节点slot再分配演示
-
复制两份节点目录,删除home目录以及子目录,修改第一份在3007端口跑,修改第二份在3008端口跑,启动3007节点3008节点
-
设置3008为3007的从数据库
root@ubuntu:/usr/local/share/tendisplus-2.1.2-rocksdb-v5.13.4/scripts3008# redis-cli -h 192.168.108.148 -p 3001 192.168.108.148:3001> cluster nodes 8d923112d81409e7eb54ef8237b1d8c9d31f17c4 192.168.108.148:3007@13007 master - 0 1611191516000 0 connected 4c9a29f65df0a513f02a9efcd7511c87be67a293 192.168.108.148:3006@13006 slave 1e30390ffbfec5d14d44096e59443aa6b87c2f84 0 1611191518171 5 connected 1e30390ffbfec5d14d44096e59443aa6b87c2f84 192.168.108.148:3005@13005 master - 0 1611191517167 4 connected 10923-16383 57f24f7b38b59125833ad249d4d3c6be0a7c77a8 192.168.108.148:3008@13008 master - 0 1611191519175 8 connected 535f0efa0e13d9c4e87ac3d80f6fec195bbafb12 192.168.108.148:3001@13001 myself,master - 0 1611191518000 7 connected 0-5461 3d4bd72dd7271b541b575817a66184c4d1aa1ce0 192.168.108.148:3003@13003 slave 516f486e6f11a43fa4d46a513e08d4e0dea0f217 0 1611191516163 6 connected 0dca64228ec2d47675ebdf9501f9c6cad589fbc1 192.168.108.148:3002@13002 slave 535f0efa0e13d9c4e87ac3d80f6fec195bbafb12 0 1611191518000 7 connected 516f486e6f11a43fa4d46a513e08d4e0dea0f217 192.168.108.148:3004@13004 master - 0 1611191515000 6 connected 5462-10922 192.168.108.148:3001> root@ubuntu:/usr/local/share/tendisplus-2.1.2-rocksdb-v5.13.4/scripts3008# redis-cli -h 192.168.108.148 -p 3008 cluster replicate 8d923112d81409e7eb54ef8237b1d8c9d31f17c4 OK
-
给3007分配slot,从3005那分一部分slot到3007去
1e30390ffbfec5d14d44096e59443aa6b87c2f84是3005的ID,可以从cluster nodes查看到
{14000,16000}是要从3005导入的slot的集合
root@ubuntu:/usr/local/share/tendisplus-2.1.2-rocksdb-v5.13.4/scripts3008# redis-cli -h 192.168.108.148 -p 3007 cluster setslot importing 1e30390ffbfec5d14d44096e59443aa6b87c2f84 {14000,16000} "8d923112d81409e7eb54ef8237b1d8c9d31f17c4-0"
-
查看搬迁的结果
查看3007节点的
root@ubuntu:/usr/local/share/tendisplus-2.1.2-rocksdb-v5.13.4/scripts3008# redis-cli -h 192.168.108.148 -p 3007 cluster setslot info 1) "importing taskid:" 2) "importing slots: " 3) "success import slots: 14000 16000 " 4) "fail import slots: " 5) "running receiver task num:0" 6) "success receiver task num:1" 7) "fail receiver task num:0"
查看3005节点的
root@ubuntu:/usr/local/share/tendisplus-2.1.2-rocksdb-v5.13.4/scripts3008# redis-cli -h 192.168.108.148 -p 3005 cluster setslot info 1) "migrating taskid:" 2) "migrating slots: " 3) "success migrate slots: 14000 16000 " 4) "fail migrate slots: " 5) "running sender task num:0" 6) "success sender task num:1" 7) "fail sender task num:0"
- 搬迁成功