获取redis cluster master对应的slot分布情况
需求:原生的redis-trib.rb功能是强大,但输出的内容过于繁杂,比如我需要关注哪些master对应哪些slots,不是很直观,如果集群的规模更大的话,那么输出的结果获取信息更加困难。
说明:这里给出一种方法,是在4.0.10版上测试的 ,3.X版本分隔符不一样,这里不进一步说明。
原生的输出
[redis@lxd-vm3 ~]$ redis-trib.rb check 5.5.5.101:29001
>>> Performing Cluster Check (using node 5.5.5.101:29001)
M: 1adfa7f3e80c47d5bd3072e9d07c1b2bcc8ef4a1 5.5.5.101:29001
slots:2500-3000,3002-3299,3301-5461,6829-7646,12291-13108 (4596 slots) master
1 additional replica(s)
S: 6178b88137d2dd621f5445f13faa9936b300333a 5.5.5.102:29004
slots: (0 slots) slave
replicates 32fc101a2920c98f279a31292ace9ff3aeaa35a3
M: 32fc101a2920c98f279a31292ace9ff3aeaa35a3 5.5.5.101:29004
slots:824-1382,2200-2499,3001,5462-6828,10923-12290 (3595 slots) master
1 additional replica(s)
S: c27b170791473946085c85c6fa7c163b24efe6e0 5.5.5.102:29001
slots: (0 slots) slave
replicates 1adfa7f3e80c47d5bd3072e9d07c1b2bcc8ef4a1
S: cb88f415e0dc61616e1ed861a00aa8416dd6dd3f 5.5.5.101:29003
slots: (0 slots) slave
replicates 31ba5414196da8b6ed8e0640472d3870d5f6f591
M: 76a8592df53de4d45fb66fa8e48ef9fb0991ae14 5.5.5.102:29002
slots:821-823,1383-2199,7647-10922 (4096 slots) master
1 additional replica(s)
S: 723bfff7241ab8abfc46eeea280d673f84311056 5.5.5.103:29002
slots: (0 slots) slave
replicates 76a8592df53de4d45fb66fa8e48ef9fb0991ae14
M: 31ba5414196da8b6ed8e0640472d3870d5f6f591 5.5.5.103:29003
slots:0-820,3300,13109-16383 (4097 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
编写脚本获取需要的
[redis@lxd-vm3 redis]$ cat get_slot_range2.sh
redis-cli -h $1 -p $2 -c cluster nodes |grep master > ./all
cat all | awk '{print $2}' | awk '$1 ~/@.*/{gsub("@.*","",$1);print $0}' > 222
cat all | awk -F " " '{for (i=9;i<=NF;i++)printf("%s ", "["$i"]");print " "}' > 999
paste -d "#" 222 999 > 2_9.txt
cat 2_9.txt 执行后输出的结果:
[redis@lxd-vm3 redis]$ sh get_slot_range2.sh 5.5.5.101 29001
5.5.5.101:29004#[824-1382] [2200-2499] [3001] [5462-6828] [10923-12290]
5.5.5.102:29002#[821-823] [1383-2199] [7647-10922]
5.5.5.101:29001#[2500-3000] [3002-3299] [3301-5461] [6829-7646] [12291-13108]
5.5.5.103:29003#[0-820] [3300] [13109-16383]
获取redis cluster master对应的slot分布情况的更多相关文章
- 另外一种获取redis cluster主从关系和slot分布的方法
条条大路通罗马,通过最近学习redis cluster 观察其输出,发现了另外一种获取master-slave关系的方法. [redis@lxd-vm1 ~]$ cat get_master_slav ...
- 又一种获取redis cluster slots分布的小脚本
需要:昨晚学习了cluster slots命令,之前写的脚本,有可以换种方法获取到redis cluster slots 分布情况. cluster slots的结果如下: 4 5460 5.5.5. ...
- 获取redis cluster中所有节点的内存使用情况
需求:获取redis cluster集群中所有节点的内存使用情况. ip_port=`redis-cli -h $ -p $ -a abc123 -c cluster nodes | awk '{pr ...
- 第3种方法获取redis cluster主从关系
需求:使用cluster slots命令,获取redis cluster 主从对应关系. 说明:cluster slots命令对应的字段说明:http://redis.cn/commands/clus ...
- 直观获取redis cluster 主从关系
需求:还是redis-trib.rb脚本获取的信息不足或者太繁杂,这里给出更加直观的一种方法, 说明:已在4.x版本测试通过,3.x不可用. 原生的输出 (1adfa7f3...) keys slot ...
- redis cluster和hash slot
redis cluster介绍 从redis3.0.0开始,官方支持了redis cluster的集群模式,结束了redis没有集群的时代. redis cluster 支撑 N 个 redis ma ...
- Redis Cluster 分区实现原理
Redis Cluster本身提供了自动将数据分散到Redis Cluster不同节点的能力,分区实现的关键点问题包括:如何将数据自动地打散到不同的节点,使得不同节点的存储数据相对均匀:如何保证客户端 ...
- 全面剖析Redis Cluster原理和应用 (转)
1.Redis Cluster总览 1.1 设计原则和初衷 在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子.最核心的目标有三个: 性能:这是Redis赖以生 ...
- redis cluster介绍
讲解分布式数据存储的核心算法,数据分布的算法 hash算法 -> 一致性hash算法(memcached) -> redis cluster,hash slot算法 一.概述 1.我们的m ...
随机推荐
- Windows+Python+Selenium基础篇之1-环境搭建
1.所需工具包1.1Selenium for python1.2 Python 1.3 Notepad++或python IDE 2. 环境搭建2.1 下载和安装Pythonpython2. ...
- [CentOS7]Yum 使用代理
公司服务器只允许YUM出公网 # vi /etc/yum.conf # 添加下面一行 proxy=http://10.1.1.1:55555 # proxy ip:端口 END
- 配置 Apache James 邮件服务器以使用加密邮件通讯协议
可先参照: 使用 Apache James 3.3.0(开源免费) 搭建内网电子邮件服务器(基于 Windows + Amazon Corretto 8)https://www.cnblogs.com ...
- 开源工作流管理系统节点接收人设置“指定节点处理人”系列讲解
关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单 拖拽式表单 工作流系统CCBPM节点访问规则接收人规则 适配数据库: o ...
- Centos7 安装Python3.7
如果电脑自带的python2.7 先卸载 1.强制删除已安装python及其关联 rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps 2.删 ...
- notepad中运行python, --kali安装后出现乱码
notepad中运行python cmd /k python "$(FULL_CURRENT_PATH)" & ECHO. & PAUSE & EXIT - ...
- vue实现打印功能
通过npm 安装插件 1.安装 npm install vue-print-nb --save 2.引入 安装好以后在main.js文件中引入 import Print from 'vue-pri ...
- 硬件知识整理part3--电阻在单片机系统中的应用
邦有道,如矢:邦无道,如矢. --孔子 电阻在电路中主要功能是限流和分压等等.在单片机系统中自然也是. 电阻作为限流应该是最常用的应用之一,对于单片机外围设计来说,电阻的应用非常重要,在很多时候,我 ...
- C语言用两个栈实现队列(完整版)
队列是一种 先进先出(first in - first out, FIFO)的数据结构,队列中的元素都从后端(rear)入队(push),从前端(front)出队(pop).实现队列最直观的方法是用链 ...
- IIS在已有站点上->添加应用程序命令
已有站点:HTTP80 %systemroot%\system32\inetsrv\APPCMD ADD APP /SITE.NAME:"HTTP80" /path:/Redire ...