当前位置: 首页 > news >正文

Redis集群常用命令及说明

一、集群的特点

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节点通信检测超时(cluster-node-timeout),就认为当前master节点挂掉;

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

A:如果集群任意master挂掉,且当前master没有slave。集群进入fail状态,也可以理解成集群的slot映射[0-16383]不完整时进入fail状态。(redis-3.0.0.rcl加入cluster-require-full-coverage参数,默认关闭,打开集群兼容部分失败)

B:如果集群超过半数以上master挂掉,无论是否有slave集群进入fail状态。(当集群不可用时,所有对集群的操作都不可用,收到(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节点

http://www.lryc.cn/news/64597.html

相关文章:

  • 使用edge浏览器,白嫖ChatGPT的保姆级教程来了
  • 新人入职,都用这三招,让你安全度过试用期
  • 小程序上车,车载小程序的信息安全是否可靠?
  • 华为OD机试 - 识图谱新词挖掘(Python)
  • ( 数组和矩阵) 378. 有序矩阵中第 K 小的元素 ——【Leetcode每日一题】
  • HBase架构篇 - Hadoop家族的天之骄子HBase
  • STL及常用容器vector、list和deque的介绍
  • SpringBoot统一功能处理(统⼀⽤户登录权限验证、统⼀异常处理、统⼀数据格式封装)
  • 华为实习笔试复盘(1)配送站和客户问题
  • alibaba yalantingLibs struct_pack代码梳理
  • JavaWeb( 二 ) URL
  • Python斐波那契数列
  • 华为OD机试 - 模拟商场优惠打折(Python)
  • 【JAVA程序设计】(C00132)基于SSM的固定资产管理系统
  • 简单的无理函数的不定积分
  • 《国际联网安全保护管理办法》
  • Redis常用命令
  • 功能齐全的 DIY ESP32 智能手表设计之原理图讲解二
  • 烦恼的高考志愿
  • 【地铁上的设计模式】--结构型模式:适配器模式
  • 重大剧透:你不用ChatGPT,它砸你饭碗
  • 状态机模式
  • 瑞吉外卖:后台系统登录功能
  • Linux拓展:链接库
  • 基于.Net开发的、支持多平台、多语言餐厅点餐系统
  • Windows系统SSL/TLS安全协议介绍
  • ovs-vsctl 命令详解
  • 具备“记忆”功能的VBA目录选择器
  • electron入门 | 手把手带electron项目初始化
  • ​力扣解法汇总2423. 删除字符使频率相同