Redis CLUSTER 命令-阿里云开发者社区

开发者社区> 数据库> 正文

Redis CLUSTER 命令

简介:

命令:

//集群(cluster)
CLUSTER INFO 打印集群的信息
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。
//节点(node)
CLUSTER MEET <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
CLUSTER FORGET <node_id> 从集群中移除 node_id 指定的节点。
CLUSTER REPLICATE <node_id> 将当前节点设置为 node_id 指定的节点的从节点。
CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。
//槽(slot)
CLUSTER ADDSLOTS <slot> [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点。
CLUSTER DELSLOTS <slot> [slot ...] 移除一个或多个槽对当前节点的指派。
CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
CLUSTER SETSLOT <slot> NODE <node_id> 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。
CLUSTER SETSLOT <slot> MIGRATING <node_id> 将本节点的槽 slot 迁移到 node_id 指定的节点中。
CLUSTER SETSLOT <slot> IMPORTING <node_id> 从 node_id 指定的节点中导入槽 slot 到本节点。
CLUSTER SETSLOT <slot> STABLE 取消对槽 slot 的导入(import)或者迁移(migrate)。
//键 (key)
CLUSTER KEYSLOT <key> 计算键 key 应该被放置在哪个槽上。
CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的键值对数量。
CLUSTER GETKEYSINSLOT <slot> <count> 返回 count 个 slot 槽中的键。

登录:

redis-cli -c -p 6382 -h 192.168.10.220    //登录

添加master节点:

redis-trib.rb add-node 127.0.0.1:7001 127.0.0.1:7002

参数说明:
7001是新增的节点
7002集群任一个旧节点

添加slave节点:

redis-trib.rb add-node --slave --master-id 03ccad2ba5dd1e062464bc7590400441fafb63f2 127.0.0.1:7003 127.0.0.1:7002

参数说明:
slave,表示添加的是从节点
master-id 03ccad2ba5dd1e062464bc7590400441fafb63f2,主节点的node id,在这里是前面新添加的6378的node id
7003 新节点
7002 集群节点

删除节点

删除主节点:

需要先移除主节点上的所有slot

image

./redis-trib.rb reshard 127.0.0.1:7002

分配集群slot

How many slots do you want to move (from 1 to 16384)? 
后面输入数字,也就是需要删除的目标节点的slot个数
What is the receiving node ID?
你想把这些slot移到那个节点 后面跟目标id

image

Please enter all the source node IDs
你可以填写 all 表示即将移除的这些slot从所有的master里面选取,
如果不填写all 则填写你需要到那几个mater上提取即将移动的这些slot, 使用的是这些master节点的ID 
最后一done来表示结束

image

询问你是否同意这种方式
yes 同意

移除完slot以后,在把master的slave指定给其他的master

先查看目标master的slave

redis-cli -p 6378 cluster nodes | grep slave | grep 03ccad2ba5dd1e062464bc7590400441fafb63f2

然后把slave节点加入到别的master节点
//将6385加入到新的master

redis-cli -c -p 6385 -h 192.168.10.220
192.168.10.220:6385> cluster replicate 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052  //新master的node id
OK
192.168.10.220:6385> quit
//查看新master的slave
 redis-cli -p 6379 cluster nodes | grep slave | grep 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052

删除

redis-trib.rb del-node 192.168.10.220:6385 '9c240333476469e8e2c8e80b089c48f389827265''

删除从节点 直接执行删除语句即可

新增节点和删除节点的步骤是相反的

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章