Redis 集群Cluster常用的操作

Redis集群操作命令解释

一、命令详解:

1、连接到集群:

    ./redis-cli -c -p 6379 -h 127.0.0.1  (客户端命令:redis-cli -c -p port -h ip)

    其中参数-c:链接集群  -h:ip地址 -p:端口号


2、集群
    cluster info :打印集群的信息

    cluster nodes :列出集群当前已知的所有节点( node),以及这些节点的相关信息。 


3、节点
    cluster meet <ip> <port> :将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
    cluster forget <node_id> :从集群中移除 node_id 指定的节点。
    cluster replicate <master_node_id> :将当前从节点设置为 node_id 指定的master节点的slave节点。只能针对slave节点操作。
    cluster saveconfig :将节点的配置文件保存到硬盘里面。

4、槽(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)。

5、键
    cluster keyslot <key> :计算键 key 应该被放置在哪个槽上。
    cluster countkeysinslot <slot> :返回槽 slot 目前包含的键值对数量。
    cluster getkeysinslot <slot> <count> :返回 count 个 slot 槽中的键 。


二、手动改变slave从节点所属的master主节点(一个slave只能属于一个master,而一个master可以有多个slave):

1、先进入到需要改成master节点的slave节点中,使用./redis-cli -c -p 6382 

2、使用 cluster replicate 要加入到的主节点ID


三、手动改变主备节点位置(主节点改为备节点,备节点改为主节点):

1、先进入到需要改成master节点的master节点中,使用./redis-cli -c -p 6379

2、failover  此时redis节点会自动断开连接让备用节点转换为master节点,当此节点恢复后会转为备用节点。


四、添加节点:

1、先创建一个新的redis服务,与创建集群配置一致,只是端口号不一样。比如这里是 6386端口

2、使用客户端进入服务 ./redis-cli -c -p 6386

3、使用命令重置节点 cluster reset

4、将节点加入集群,使用客户端接入集群的环境  ./redis-cli -c -p 6379

5、将节点加入集群: cluster meet 127.0.0.1 6386 自此节点就加入进了集群但是他是一个master却没有分配数据曹,

所以就不能往里面存入数据,需要给他分配一个数据曹

6、退出客户端

7、执行  ./redis-cli --cluster reshard 127.0.0.1:6386 进行数据曹的从分配,这里不是从某一个节点全部移除到此节点,而是会随机取一个范围来移动到此曹中,当执行完成后进入到集群环境就会发现此节点已经加入。使用的是all


五、移除主节点:

1、执行  ./redis-cli --cluster reshard 127.0.0.1:6386 进行数据曹的从分配,然后选择一个接收数据曹的ID,这里使用done,将一个节点的数据曹重分配到另一个节点中,不过在使用done的时候在输入选择时#1就输入需要移除的节点ID,然后#2输入done。而使用all的话#1就直接输入 all  如下图:

1317730-20191114152519394-1055395532.png


2、进入集群环境看到刚刚被移除数据曹的节点已经没有数据曹了,这时候就可以关闭那个节点了。

3、当节点关闭后在集群环境中 cluster forget  节点ID,这样这个主节点就完全的移除了。


六、移除备份节点

1、在集群环境中 cluster forget 需要移除的备份节点ID

2、关闭节点。

阅读数:162
如有疑问请与我联系:点击与我联系