Redis集群添加节点node
1:首先把须要添加的节点启动redis
cd /usr/local/cluster/ mkdir 7006 cp /usr/local/cluster/redis.conf /usr/local/cluster/7006/ cd /usr/local/cluster/7006/ vi redis.conf ##修改redis.conf中的port参数的值为7006 redis-server redis.conf
2:执行如下命令,将这个新节点添加到集群中bash
cd /usr/local/redis3.0/src/ ./redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000
3:执行命令redis-cli -c -p 7000 cluster nodes,查看刚才新增的节点ide
4:增长了新的节点以后,这个新的节点能够成为主节点或者是从节点spa
4.1 把这个节点变成主节点,使用redis-trib程序,将集群中的某些哈希槽移动到新节点里面, 这个新节点就成为真正的主节点了。.net
执行下面的命令对集群中的哈希槽进行移动3d
cd /usr/local/redis3.0/src ./redis-trib.rb reshard 127.0.0.1:7000
系统会提示咱们要移动多少哈希槽,这里移动1000个server
而后还须要指定把这些哈希槽转移到哪一个节点上,blog
输入咱们刚才新增的节点的ID图片
f32dc088c881a6b930474fc5b52832ba2ff71899
而后须要咱们指定转移哪几个几点的哈希槽
输入all 表示从全部的主节点中随机转移,凑够1000个哈希槽
而后再输入yes,redis集群就开始分配哈希槽了。
至此,一个新的主节点就添加完成了,执行命令查看如今的集群中节点的状态
redis-cli -c -p 7000 cluster nodes
4.2:把这个节点变成从节点
前面咱们已经把这个新节点添加到集群中了,如今咱们要让新节点成为127.0.0.1:7001的从节点,只须要执行下面的命令就能够了,命令后面的节点ID就是127.0.0.1:7001的节点ID
redis-cli -c -p 7006 cluster replicate 0b00721a509444db793d28448d8f02168b94bd38
使用下面命令来确认一下127.0.0.1:7006是否已经成为127.0.0.1:7001的从节点
redis-cli -p 7000 cluster nodes | grep slave | grep 0b00721a509444db793d28448d8f02168b94bd38
看到下面图片中的状况就表示添加成功
1:若是删除的节点是主节点,这里咱们删除127.0.0.1:7006节点,这个节点有1000个哈希槽
首先要把节点中的哈希槽转移到其余节点中,执行下面的命令
cd /usr/local/redis3.0/src ./redis-trib.rb reshard 127.0.0.1:7000
系统会提示咱们要移动多少哈希槽,这里移动1000个,由于127.0.0.1:7006节点有1000个哈希槽
而后系统提示咱们输入要接收这些哈希槽的节点的ID,这里使用127.0.0.1:7001的节点ID
而后要咱们选择从那些节点中转出哈希槽,这里必定要输入127.0.0.1:7006这个节点的ID,最后输入 done 表示输入完毕
最后一步,使用下面的命令把这个节点删除
cd /usr/local/redis3.0/src/ ./redis-trib.rb del-node 127.0.0.1:7006 127.0.0.1:7006
2:若是节点是从节点的,直接使用下面的命令删除便可。
cd /usr/local/redis3.0/src/ ./redis-trib.rb del-node 127.0.0.1:7006 127.0.0.1:7006