三、集群客户端命令(redis-cli -c -p port)可以设置后台启动 daemonize yes
集群
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 应该被放置在哪个槽上。(一共有16384个散列槽)
cluster countkeysinslot <slot> :返回槽 slot 目前包含的键值对数量。
cluster getkeysinslot <slot> <count> :返回 count 个 slot 槽中的键
四:手动故障切除(切换到redis里面命令cluster failover force,要先进入主服务器,然后在进入从服务器执行此命令)
此命令只能发送到Redis群集副本节点,强制副本启动其主实例的手动故障转移。
手动故障转移是一种特殊的故障转移,通常在没有实际故障时执行,但我们希望以安全的方式将当前主服务器与其中一个副本(我们发送命令的节点)交换,没有任何数据丢失窗口。它的工作方式如下:
-
副本告诉主服务器停止处理来自客户端的查询。
-
主服务器使用当前复制偏移量回复副本。
-
副本等待复制偏移量在其侧面匹配,以确保它在继续之前处理来自主节点的所有数据。
-
副本启动故障转移,从大多数主服务器获取新的配置时期,并广播新配置。
-
旧主服务器收到配置更新:取消阻止其客户端并开始使用重定向消息进行回复,以便他们继续与新主服务器进行聊天。
这样,只有当转换为新主服务器的副本处理了来自旧主服务器的所有复制流时,客户端才会原子地从旧主服务器移动到新主服务器。