网站首页 文章专栏 Redis集群常用命令及说明
Redis集群常用命令及说明
编辑时间:2019年11月30日 14:53 作者:赵彦昌 浏览量:2018

来自转载: href


一、本文目的
       介绍集群的基本情况及常用命令
    
二、集群的特点

1、集群架构特点:
(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽;
(2)节点的fail是通过集群中超过半数的节点检测失效时才生效;
(3)客户端与redis节点直连,不需要中间proxy层。客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可;
(4) redis-cluster把所有的物理节点映射到[0-16383]个slot(哈希槽).上,cluster 负责维护node<->slot<->value。


2、集群选举容错:

(1)节点失效选举过程是集群中所有master参与,如果半数以上master节点与当前被检测master节点通信检测超时(c luster-node-t imeout), 就认为当前master节点挂掉; .

(2) :什么时候整个集群不可用(cluster_ state:fail)?

A:如果集群任意master挂掉,且当前master没有slave。 集群进入fail状态,也可以理解成集群的slot映射[0-16383]不完整时进入fail 状态。

ps : redis-3. 0.0. rc1加入cluster-require-full-coverage参数,默认关闭,打开集群兼容部分失败;

B:如果集群超过半数以上master挂掉,无论是否有slave集群进入fail状态。ps:当集群不可用时,所有对集群的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down) 错误。



3、集群优缺点

优点:

在master节点下线后,slave 节点会自动提升为master节点,保存集群持续提供服务;fail节点恢复后,会自动添加到集群中,变成slave节点;

缺点:

由于redis的复制使用异步机制,在自动故障转移的过程中,集群可能会丢失写命令。然而redis 几乎是同时执行(将命令恢复发送给客户端,以及将命令复制到slave节点)这两个操作,所以实际中,命令丢失的窗口非常小。

三、集群客户端命令(redis-cli -c -p port)

集群
cluster info :打印集群的信息
cluster nodes :列出集群当前已知的所有节点( 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)。
键
cluster keyslot <key> :计算键 key 应该被放置在哪个槽上。
cluster countkeysinslot <slot> :返回槽 slot 目前包含的键值对数量。
cluster getkeysinslot <slot> <count> :返回 count 个 slot 槽中的键  


四、集群中Master的下线及恢复
1、Master下线后,其对应的Slaver节点会自动变为Master节点


 
2、原来的Master重启后变成Slaver节点,并是原来Master节点的Slaver节点


来说两句吧
最新评论