需求:还是redis-trib.rb脚本获取的信息不足或者太繁杂,这里给出更加直观的一种方法,

说明:已在4.x版本测试通过,3.x不可用。

原生的输出

[redis@lxd-vm3 redis]$ redis-trib.rb info 5.5.5.101:29001
5.5.5.101:29001 (1adfa7f3...) -> 2599 keys | 4596 slots | 1 slaves.
5.5.5.101:29004 (32fc101a...) -> 4181 keys | 3595 slots | 1 slaves.
5.5.5.102:29002 (76a8592d...) -> 5041 keys | 4096 slots | 1 slaves.
5.5.5.103:29003 (31ba5414...) -> 5011 keys | 4097 slots | 1 slaves.
[OK] 16832 keys in 4 masters.
1.03 keys per slot on average.
[redis@lxd-vm3 redis]$ redis-cli -h 5.5.5.101 -p 29001 -c -a abc123 cluster nodes
6178b88137d2dd621f5445f13faa9936b300333a 5.5.5.102:29004@39004 slave 32fc101a2920c98f279a31292ace9ff3aeaa35a3 0 1544694513000 16 connected
32fc101a2920c98f279a31292ace9ff3aeaa35a3 5.5.5.101:29004@39004 master - 0 1544694515000 16 connected 824-1382 2200-2499 3001 5462-6828 10923-12290
c27b170791473946085c85c6fa7c163b24efe6e0 5.5.5.102:29001@39001 slave 1adfa7f3e80c47d5bd3072e9d07c1b2bcc8ef4a1 0 1544694514000 24 connected
cb88f415e0dc61616e1ed861a00aa8416dd6dd3f 5.5.5.101:29003@39003 slave 31ba5414196da8b6ed8e0640472d3870d5f6f591 0 1544694515665 20 connected
76a8592df53de4d45fb66fa8e48ef9fb0991ae14 5.5.5.102:29002@39002 master - 0 1544694514000 27 connected 821-823 1383-2199 7647-10922
1adfa7f3e80c47d5bd3072e9d07c1b2bcc8ef4a1 5.5.5.101:29001@39001 myself,master - 0 1544694513000 24 connected 2500-3000 3002-3299 3301-5461 6829-7646 12291-13108
723bfff7241ab8abfc46eeea280d673f84311056 5.5.5.103:29002@39002 slave 76a8592df53de4d45fb66fa8e48ef9fb0991ae14 0 1544694514663 27 connected
31ba5414196da8b6ed8e0640472d3870d5f6f591 5.5.5.103:29003@39003 master - 0 1544694513656 20 connected 0-820 3300 13109-16383
[redis@lxd-vm3 redis]$

编写脚本直观获取

[redis@lxd-vm3 redis]$ cat get_master_slave.sh
cmd="redis-cli -c -h $1 -p $2"
master_id=(`$cmd cluster nodes | grep master | awk '{print $1}'`)
master_ip_port=(`$cmd cluster nodes | grep master | awk '$2 ~ /@.*/{gsub("@.*","",$2);print $2}'`) len=${#master_id[@]}
for ((i=0;i<=$len-1;i++));
do
echo -n "${master_ip_port[$i]} -> "
echo `$cmd cluster slaves ${master_id[$i]} | awk '$2 ~ /@.*/{gsub("@.*","",$2);print $2}'`
done
[redis@lxd-vm3 redis]$
[redis@lxd-vm3 redis]$ sh get_master_slave.sh 5.5.5.101 29001
5.5.5.101:29004 -> 5.5.5.102:29004
5.5.5.102:29002 -> 5.5.5.103:29002
5.5.5.101:29001 -> 5.5.5.102:29001
5.5.5.103:29003 -> 5.5.5.101:29003
[redis@lxd-vm3 redis]$

直观获取redis cluster 主从关系的更多相关文章

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

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

  2. 另外一种获取redis cluster主从关系和slot分布的方法

    条条大路通罗马,通过最近学习redis cluster 观察其输出,发现了另外一种获取master-slave关系的方法. [redis@lxd-vm1 ~]$ cat get_master_slav ...

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

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

  4. 生成指定规模大小的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 ...

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

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

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

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

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

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

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

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

  9. centos6下redis cluster集群部署过程

    一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...

随机推荐

  1. apache主配置文件httpd.conf详解

    [root@lamp conf]# vi httpd.conf.bak 1 # 2 # This is the main Apache HTTP server configuration file. ...

  2. leetcode--js--Two Sum

    问题描述: 给定一个整数数列,找出其中和为特定值的那两个数. 你可以假设每个输入都只会有一种答案,同样的元素不能被重用. 示例: 给定 nums = [2, 7, 11, 15], target = ...

  3. Python requests 调Jenkins登录后的接口,返回403Fobidden的原因及解决方法。

    因Jenkins启用“防止跨站点请求伪造" 解决方法: 在Manage Jenkins->Configure Global Security 设置中将“防止跨站点请求伪造”取消勾选

  4. Git 工作流程和Git分支管理策略

    git-flow 阮一峰大佬写的文章真不错 git-flow, github-flow, gitlab-flow 阮一峰大佬写的文章真不错

  5. 有关版本控制--SVN

    什么是版本控制? 这个之前有记录过相关的内容 版本管理就是管理更新的历史记录, 它给我们提供了一些在软件开发过程中必不可少的功能,例如: 记录一款软件添加或更改源代码的过程 回滚到特定阶段,恢复误删除 ...

  6. 在window上安装mysql - MySQL5.7.24 版本

    1.下载安装包 下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 点击Download,选择 No thanks, just ...

  7. Android中动态改变Listview中字体的颜色

    效果如下: 账目显示用的是Listview,要实现的功能为使其根据所在Item是“收入”还是“支出”来把数字设置成绿色或红色 方法是自定义适配器,并重写其中getView()函数,实现如下: //自定 ...

  8. day19 几个模块的学习

    # 模块本质上就是一个 .py 文件# 数据类型# 列表.元组# 字典# 集合.frozenset# 字符串# 堆栈:特点:先进后出# 队列:先进先出 FIFO # from collections ...

  9. Uderstanding and using Pointers 读书笔记

    如何阅读指针? 从右向左读. 比如 const int *pci; 虚拟内存和虚拟内存地址是什么? 一个应用程序,在虚拟内存地址里也许是连续的,但是在物理内存里也许是分隔开来的. 虚拟内存和物理内存的 ...

  10. opencv —— HoughLines、HoughLinesP 霍夫线变换原理(标准霍夫线变换、多尺度霍夫线变换、累积概率霍夫线变换)及直线检测

    霍夫线变换的原理 一条直线在图像二维空间可由两个变量表示,有以下两种情况: ① 在笛卡尔坐标系中:可由参数斜率和截距(k,b)表示. ② 在极坐标系中:可由参数极经和极角(r,θ)表示. 对于霍夫线变 ...