添加新节点

  • 先创建启动2个节点(7007,7008)
  • 添加node节点到现在集群
#添加2台机子到集群(注意要分2次添加)
redis-cli -c -p 6379 -a 密码  --cluster add-node 新ip:7007 第一台Master老ip:7001
#添加从主机(自动分配master)
redis-cli -c -p 6379 -a 密码  --cluster add-node 新ip:7008 redis7007:7007 --cluster-slave 

#添加从主机指定master_id
redis-cli --cluster add-node 192.168.0.2:6380 192.168.0.1:6379 --cluster-slave --cluster-master-id  xxxxxx

#c1uster nodes查看

给新节点分配槽(slot)

redis-cli -c -p 7001 -a 123456  --cluster reshard redis7007:7007
参数如下:
1.分配多少个槽位给新机器=16384/master个数
2. 接收节点的id: d6e2eca6b338b717923f64866bd31d42e52edc98  redis7007的id
3.all   #将哪些源主机的槽位分配给新的节点,all是自动在所有的redis node选择划分
  或者输入主机的id
4. yes 确认分配

删除一个节点

  • 先删除本节点的所有槽

    方法1:CLUSTER FLUSHSLOTS 清空本点的所有槽(槽移动到空载状态,删除后集群内的槽不对齐,要修复一下)
    方法2:将槽分配给其它节点(重新分配:来源选定待删除节点id)

    redis-cli -c -p 7001 -a 123456 —cluster reshard redis7007:7007

  • 再删除节点(先删除从节点,再删主节点;否则从节点将转移到其他主节点)

删除代码

redis-cli -c -p 7001 -a 123456  --cluster del-node redis7001:7001 node_id

删除失效节点(slave,fail,noaddr)

cluster forget node_id

槽检查,操作,修改

#检查集群状态
redis-cli -c -p 7001 -a 123456  --cluster check redis7003:7003

修复槽:(槽不对时,通过此命令处理)
redis-cli -c -p 7001 -a 123456  --cluster fix redis7001:7001 

重新分配槽(所有槽全部重分)
redis-cli  -c -p 7001 -a 123456 --cluster reshard redis7003:7003

重平衡槽(将本节点的槽分一部分出去)
redis-cli -c -p 7001 -a 123456 --cluster rebalance --cluster-threshold 1 redis7001:7001

槽健康检查
redis-cli -c -p 7001 -a 123456 --cluster check redis7001:7001