输出redis cluster 主从的对应关系,如果同一个主从关系的master和slave在同一个node节点上,在输出的对应关系末尾输出提示
需求:输出redis cluster 主从的对应关系,如果同一个主从关系的master和slave在同一个node节点上,在输出的对应关系末尾输出提示。
为什么会有这样的需求呢?在重新搭建redis cluster的时候,创建集群期间,发现:
redis-trib.rb create --replicas 1 \
5.5.5.101:29001 5.5.5.102:29002 5.5.5.103:29003 \
5.5.5.102:29001 5.5.5.103:29002 5.5.5.101:29003
cluster nodes信息:
8574f133fd52d32c133245274d027fb90893c524 5.5.5.101:@ myself,master - connected -
a58667c0738ac2692f7733009d9b44fc6c264721 5.5.5.102:@ slave 8574f133fd52d32c133245274d027fb90893c524 connected
86316f44d2b56f7a4fbefd6c5f1594afb928769a 5.5.5.103:@ master - connected -
a5d87acb12011b964334bd2bcacf9eb1924c5428 5.5.5.101:@ slave 98034fcf1d80c7401cafb22775bb70a0c367b91f connected
b065bd036c1606f52a1a7c2a0936c259ee658799 5.5.5.103:@ slave 86316f44d2b56f7a4fbefd6c5f1594afb928769a connected
d6866201dcb87d0383b26de03049cc2be73a0a70 5.5.5.103:@ slave 86316f44d2b56f7a4fbefd6c5f1594afb928769a connected
98034fcf1d80c7401cafb22775bb70a0c367b91f 5.5.5.102:@ master - connected -
脚本:
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=;i<=$len-;i++));
do
master_node=$(echo ${master_ip_port[$i]} | awk -F'[:]' '{print $1}')
$cmd cluster slaves ${master_id[$i]} | awk '$2 ~ /@.*/{gsub("@.*","",$2);print $2}' > slave_ip_port
for j in `cat slave_ip_port`
do
slave_node=$(echo $j | awk -F'[:]' '{print $1}')
if [[ "$master_node" == "$slave_node" ]];then
printf "%s%s%s\n" "${master_ip_port[$i]}->" `$cmd cluster slaves ${master_id[$i]} | awk '$2 ~ /@.*/{gsub("@.*","",$2);print $2}' | grep $j` " master和slave在同一个节点上"
else
printf "%s%s\n" "${master_ip_port[$i]}->" `$cmd cluster slaves ${master_id[$i]} | awk '$2 ~ /@.*/{gsub("@.*","",$2);print $2}' | grep $j`
fi
done
done
测试:
[redis@lxd-vm1 ~]$ sh get_master_slave.sh 5.5.5.101
5.5.5.101:->5.5.5.102:
5.5.5.103:->5.5.5.103: master和slave在同一个节点上
5.5.5.103:->5.5.5.103: master和slave在同一个节点上
5.5.5.102:->5.5.5.101:
输出redis cluster 主从的对应关系,如果同一个主从关系的master和slave在同一个node节点上,在输出的对应关系末尾输出提示的更多相关文章
- 输出redis cluster集群所有节点指定的参数的配置
需要:实现类似redis-trib.rb call 命令的功能,输出redis cluster集群所有节点指定的参数的配置 redis-trib.rb的输出 [redis@lxd-vm3 ~]$ re ...
- redis cluster 集群畅谈(三) 之 水平扩容、slave自动化迁移
上一篇http://www.cnblogs.com/qinyujie/p/9029522.html, 主要讲解 实验多master写入.读写分离.实验自动故障切换(高可用性),那么本篇我们就来聊了聊r ...
- redis cluster集群动态伸缩--删除主从节点
目标:从集群中剔除一组主从(5007,5008) 经过上一节增加5007,5008主从服务节点后,目前集群的情况是这样的: b3363a81c3c59d57143cd3323481259c044e66 ...
- Redis Cluster 原理相关说明
背景 之前写的 Redis Cluster部署.管理和测试 和 Redis 5.0 redis-cli --cluster help说明 已经比较详细的介绍了如何安装和维护Cluster.但关于Clu ...
- 另外一种获取redis cluster主从关系和slot分布的方法
条条大路通罗马,通过最近学习redis cluster 观察其输出,发现了另外一种获取master-slave关系的方法. [redis@lxd-vm1 ~]$ cat get_master_slav ...
- Redis(十)集群:Redis Cluster
一.数据分布 1.数据分布理论 2.Redis数据分区 Redis Cluser采用虚拟槽分区,所有的键根据哈希函数映射到0~16383整数槽内,计算公式:slot=CRC16(key)&16 ...
- 全面剖析Redis Cluster原理和应用 (转)
1.Redis Cluster总览 1.1 设计原则和初衷 在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子.最核心的目标有三个: 性能:这是Redis赖以生 ...
- 全面剖析Redis Cluster原理和应用
全面剖析Redis Cluster原理和应用 1.Redis Cluster总览 1.1 设计原则和初衷 在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子.最 ...
- Redis-3.2.0集群配置(redis cluster)
版本:redis-3.0.5 redis-3.2.0 redis-3.2.9 redis-4.0.11 参考:http://redis.io/topics/cluster-tutorial. 目录 ...
随机推荐
- SSH: ssh隧道
简介 Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境.SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接. ...
- 批处理(BAT) Ping监控, 结果记录入日志文件
::执行效果 @echo off ::等待用户输入需要监控IP set /p ip=Input the IP required to monitor: echo executing...... :st ...
- TestStand 基础知识[7]--Build-in Step Types (2)
接着上一篇文章:TestStand 基础知识[6] Build-In StepTypes(1) 继续介绍: 还是先把Build-in StepTypes图片贴一下, 1. Call Executabl ...
- Netty学习(2):IO模型之NIO初探
NIO 概述 前面说到 BIO 有着创建线程多,阻塞 CPU 等问题,因此为解决 BIO 的问题,NIO 作为同步非阻塞 IO模型,随 JDK1.4 而出生了. 在前面我们反复说过4个概念:同步.异步 ...
- vue 入门 ------简单购物车功能实现(全选,数量加减,价格加减)
简易购物车功能(无任何布局 主要是功能) 数量的加减 商品的总价钱 全选与全不选 删除(全选.价格 受影响) <script src="https://cdn.jsdelivr.net ...
- 配置nginx代理服务器访问tomcat服务
nginx原配置文件如下: #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log ...
- Java集合那点事, 满满干货~
说到Java集合,可以说是初学者必踩的坑了. 那么怎么才能学好Java集合呢?个人认为关键是要理清楚思路,从上而下,建立一套完整的思维体系,这样才能更好的去认识事物的本质. 先确立一下学习Java集合 ...
- Java第一次代码作业汇总
练习题1:(完数问题) 求100以内的所有完数.(完数:它所有因子之和等于其本身) 方法一: /* 解体思路:1.先找出每个数的所有因子 2.比较因子之和是否与其数本身相等 */ public c ...
- 解决egg-mysql连接数据库报错问题
遇到这个问题,我在网上找了好多资料,最终于解决了!!!★,°:.☆( ̄▽ ̄)/$:.°★ . 我遇到的问题是这样的:链接mysql完全按照官网上做的,但是在yarn dev 时就是一直报错,错误我就不 ...
- Android 有关在ListView RecycleView 中使用EditText Checkbox的坑
这是一篇文字超多的博客,哈哈哈,废话自行过滤··· 遇到问题 在开发中我们常会在ListView , RecycleView 列表中添加EditText输入框,或者checkbox复选框. 复选框 ...