条条大路通罗马,通过最近学习redis cluster 观察其输出,发现了另外一种获取master-slave关系的方法。

[redis@lxd-vm1 ~]$ cat get_master_slave2.sh
redis-cli -h $1 -p $2 -a abc123 -c cluster nodes > cluster_nodes.txt
echo "master to slave info..."
cat cluster_nodes.txt | awk '/master/{print $1,$2}' | sort -nk2 -t ':' > master.txt
cat cluster_nodes.txt | awk '/slave/{print $2,$4}' | sort -nk1 -t ':' > slave.txt
cat master.txt | while read m
do
master_ip_port=`echo $m | awk '{print $2}'`
master_tag=`echo $m | awk '{print $1}'`
cat slave.txt | while read s
do
slave_ip_port=`echo $s | awk '{print $1}'`
slave_tag=`echo $s | awk '{print $2}'`
if [[ ${master_tag} == ${slave_tag} ]];then
echo "${master_ip_port}->${slave_ip_port}"
fi
done
done echo ""
echo "master slots info...."
cat cluster_nodes.txt |grep master | uniq | sort -nk9 > ./all
cat all | awk '{print $2}' > 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-vm1 ~]$ sh get_master_slave2.sh 5.5.5.101 29001
master to slave info...
5.5.5.101:29001@39001->5.5.5.102:29001@39001
5.5.5.102:29002@39002->5.5.5.103:29002@39002
5.5.5.103:29003@39003->5.5.5.101:29003@39003
5.5.5.101:29004@39004->5.5.5.102:29004@39004 master slots info....
5.5.5.103:29003@39003#[0-820] [] [13109-16383]
5.5.5.102:29002@39002#[821-823] [1383-2199] [7647-10922]
5.5.5.101:29004@39004#[824-1382] [2200-2499] [] [5462-6828] [10923-12290]
5.5.5.101:29001@39001#[2500-3000] [3002-3299] [3301-5461] [6829-7646] [12291-13108]
[redis@lxd-vm1 ~]$

另外一种获取redis cluster主从关系和slot分布的方法的更多相关文章

  1. 第3种方法获取redis cluster主从关系

    需求:使用cluster slots命令,获取redis cluster 主从对应关系. 说明:cluster slots命令对应的字段说明:http://redis.cn/commands/clus ...

  2. 直观获取redis cluster 主从关系

    需求:还是redis-trib.rb脚本获取的信息不足或者太繁杂,这里给出更加直观的一种方法, 说明:已在4.x版本测试通过,3.x不可用. 原生的输出 (1adfa7f3...) keys slot ...

  3. 获取redis cluster master对应的slot分布情况

    需求:原生的redis-trib.rb功能是强大,但输出的内容过于繁杂,比如我需要关注哪些master对应哪些slots,不是很直观,如果集群的规模更大的话,那么输出的结果获取信息更加困难. 说明:这 ...

  4. 又一种获取redis cluster slots分布的小脚本

    需要:昨晚学习了cluster slots命令,之前写的脚本,有可以换种方法获取到redis cluster slots 分布情况. cluster slots的结果如下: 4 5460 5.5.5. ...

  5. 输出redis cluster 主从的对应关系,如果同一个主从关系的master和slave在同一个node节点上,在输出的对应关系末尾输出提示

    需求:输出redis cluster 主从的对应关系,如果同一个主从关系的master和slave在同一个node节点上,在输出的对应关系末尾输出提示. 为什么会有这样的需求呢?在重新搭建redis ...

  6. 生成指定规模大小的redis cluster对关系

    需求: 指定一批ip列表,生成指定规模大小的redis cluster主从对应关系. ip_list=(1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 5.5.5.5) port=70 ...

  7. 监控redis cluster 主从实例是否切换,切换前后对应关系

    需求:编写脚本实现对redis cluster 主从是否发生主从切换进行监控,若发生切换,输出切换前后主从对应关系. 初始化对比文件,仅执行一次,后续不需要在执行,除非该文件不存在. cmd=&quo ...

  8. 获取redis cluster中所有节点的内存使用情况

    需求:获取redis cluster集群中所有节点的内存使用情况. ip_port=`redis-cli -h $ -p $ -a abc123 -c cluster nodes | awk '{pr ...

  9. 全面剖析Redis Cluster原理和应用 (转)

    1.Redis Cluster总览 1.1 设计原则和初衷 在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子.最核心的目标有三个: 性能:这是Redis赖以生 ...

随机推荐

  1. 一个故事看懂Linux文件权限管理

    前情回顾: 我通过open这个系统调用虫洞来到了内核空间,又在老爷爷的指点下来到了sys_open的地盘,即将开始打开文件的工作. 详情参见:内核地址空间大冒险:系统调用 open系统调用链 我是一个 ...

  2. 修改kali软件源并配置网络

    一.配置kali使用xshell连接 查看ssh服务状态 # service ssh status 开启ssh服务 # service ssh start 修改ssh配置文件 # vi /etc/ss ...

  3. package包

    为什么需要package? 为了解决类之间的重名问题.为了方便管理类,合适的类放在合适的包. 怎么用package? 通常是类的第一句非注释性语句. 包名,域名倒着写,加上模块名,并与内部管理类. 命 ...

  4. clr via c# clr寄宿和AppDomain (一)

    1 clr寄宿-----.net framework在windows平台的顶部允许.者意味着.net framework必须用windows能理解的技术来构建.所有托管模块和程序集文件必须使用wind ...

  5. Http API触发小程序云函数案例

    1.创建云函数 在云开发中创建云函数(sum,调用需要两个参数:a.b): 2.invokeCloudFunction触发云函数 const request = require('request'); ...

  6. 深入理解 Android 中的各种 Context

    前言 网上关于 Context 的文章也已经有不少了,比如值得参考的有: Android Context完全解析,你所不知道的Context的各种细节 Android Context 到底是什么? 但 ...

  7. markdown语法链接新页面打开

    我们在写markdown语法的文章时,经常会写超链接,默认markdown的写法超链接打开页面都是在当前页面,对自己页面的访问不是很好,所以我们一般都希望在新页面打开.但是据我对markdwon的语法 ...

  8. 1.Android网络编程-HTML介绍

    1.HTML介绍 超文本标记语言(HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言. 在Eclipse下则可以使用自带的浏览器浏览html: 2.H ...

  9. 解决Intellij Idea下修改jsp页面不自动更新

    解决Intellij Idea下修改jsp页面不自动更新 On frame deactivation:被设置成了Do nothing 解决办法:改为Update resources(更新资源)或者Up ...

  10. 获取redis实例绑定cpu的情况

    redis是一个单线模型的nosql类型的数据库,而目前接触到的服务器大都是多核的,比如8c,16c,32c,64c等等.为了充分利用主机,在一台主机上必然会部署多个redis实例,默认情况cpu会随 ...