输出redis cluster集群所有节点指定的参数的配置
需要:实现类似redis-trib.rb call 命令的功能,输出redis cluster集群所有节点指定的参数的配置
redis-trib.rb的输出
[redis@lxd-vm3 ~]$ redis-trib.rb call 5.5.5.101: config get *timeout*
/usr/local/ruby2.5.1/lib/ruby/gems/2.5./gems/redis-3.3./lib/redis/client.rb:: warning: constant ::Fixnum is deprecated
>>> Calling CONFIG get *timeout*
5.5.5.101:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.101:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.102:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.101:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.102:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.103:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.102:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.103:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
编写脚本
ip_port=`redis-cli -h $ -p $ -a abc123 -c cluster nodes | awk '{print $2}' | awk -F'@' '{print $1}'`
for i in $ip_port
do
redis_ip=`echo $i | awk -F':' '{print $1}'|sed 's/\r//g'`
redis_port=`echo $i | awk -F':' '{print $2}'|sed 's/\r//g'`
redis_cmd="redis-cli -h $redis_ip -p $redis_port -a abc123 -c"
echo -n "$redis_ip:$redis_port "
$redis_cmd config get $ > config
cat config | awk 'NR % 2 == 0' > even
cat config | awk 'NR % 2 == 1' > odd
paste -d ':' odd even > tmp.txt
tail_line=$(cat tmp.txt|sed -n '$p')
printf '【'
for x in `cat tmp.txt`
do
if [[ "$x" == "$tail_line" ]];then
printf "%s" $x
else
printf '%s\t' $x
fi
done
printf '】'
echo
done
在后续学习awk命令中,遇到了getline命令,发现可以用一行命令替代上面红色字体的3条语句。
cat config | awk '{printf $0":";getline;print $0}' > tmp.txt
可以作为奇数行和偶数行两两配对一种方法。
说明:getline是获取当前行的下一行,即第一个$0输出的是奇数行,第二个$0输出的是偶数行,依次循环输出所有两两配对的键值对。
测试结果
[redis@lxd-vm1 ~]$ sh get_redis_para.sh 5.5.5.101 *timeout*
5.5.5.101: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.101: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.102: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.101: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.102: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.103: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.102: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.103: 【timeout: repl-timeout: cluster-node-timeout:】
输出redis cluster集群所有节点指定的参数的配置的更多相关文章
- redis cluster集群部署
上一篇http://www.cnblogs.com/qinyujie/p/9029153.html,主要讲解了 redis cluster 集群架构 的优势.redis cluster 和 redis ...
- Redis Cluster 集群节点维护 (三)
Redis Cluster 集群节点维护: 集群运行很久之后,难免由于硬件故障,网络规划,业务增长,等原因对已有集群进行相应的调整,比如增加redis nodes 节点,减少节点,节点迁移,更换服务器 ...
- Redis Cluster集群知识学习总结
Redis集群解决方案有两个: 1) Twemproxy: 这是Twitter推出的解决方案,简单的说就是上层加个代理负责分发,属于client端集群方案,目前很多应用者都在采用的解决方案.Twem ...
- centos6下redis cluster集群部署过程
一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...
- Redis Cluster集群搭建<原>
一.环境配置 一台window 7上安装虚拟机,虚拟机中安装的是centos系统. 二.目标 Redis集群搭建的方式有多种,根据集群逻辑的位置,大致可以分为三大类:基于客户端分片的Redis ...
- Ubuntu 16.04下Redis Cluster集群搭建(官方原始方案)
前提:先安装好Redis,参考:http://www.cnblogs.com/EasonJim/p/7599941.html 说明:Redis Cluster集群模式可以做到动态增加节点和下线节点,使 ...
- JFinal redis cluster集群插件
JFinal redis cluster集群插件 JFinal 框架到了2.1版本号,可是依旧仅仅支持redis的主从集群,没有看到Cluster集群的插件.笔者照着主从的插件方式,改了改,实现了个简 ...
- 【原创】强撸基于 .NET 的 Redis Cluster 集群访问组件
Hello 大家好,我是TANZAME,我们又见面了.今天我们来聊聊怎么手撸一个 Redis Cluster 集群客户端,纯手工有干货,您细品. 随着业务增长,线上环境的QPS暴增,自然而然将当前的单 ...
- Redis Cluster集群搭建与应用
1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结 ...
随机推荐
- POJ_1050_最大子矩阵
http://poj.org/problem?id=1050 这道题是最大子串的扩展,遍历过每一个子矩阵就好了,期间用了最大子串的方法. #include<iostream> #inclu ...
- 2019icpc南京网络赛 A The beautiful values of the palace(离线+树状数组)
题意: (假设所有的点对应的值已经求出)给你一个1e6*1e6的矩阵,有m<=1e5个点有值,其余都为0 q<=1e5个询问,求子矩阵的权值和 思路: 根据二维差分,对于询问左下角(x1, ...
- The 2019 University of Jordan Collegiate Programming Contest
链接:https://codeforc.es/gym/102267 A. Picky Eater 直接比较 int main(){ int x ,y; scanf("%d %d" ...
- (二)Mybatis动态sql
首先动态sql简单来讲就是可以根据传入参数的不同来动态的生成sql语句,拼接where语句,这样你就不用写很多个sql语句了,并且它里面有一些特性也可以帮助你避免sql语句的拼接错误,主要分为4个: ...
- python笔记22(面向对象课程四)
今日内容 讲作业 栈 顺序查找 可迭代对象 约束 + 异常 反射 内容详细 1.作业 1.1 代码从上到下执行 print('你好') def func(): pass func() class Fo ...
- gcc和g++的区别:安装、版本、编译(转)
用以下命令: yum install gcc 安装的只有gcc,而不会安装g++.gcc是编译器合集,而gcc-g++或简称g++则是C++编译器.gcc成为了编译器的选择器.gcc通过识别被编译的源 ...
- sql 忘记密码 解决方法(window cmd命令解决)
cd wamp\bin\mysql\mysql5.6.17\bin mysqld --skip-grant-tables
- 高并发之——不得不说的线程池与ThreadPoolExecutor类浅析
一.抛砖引玉 既然Java中支持以多线程的方式来执行相应的任务,但为什么在JDK1.5中又提供了线程池技术呢?这个问题大家自行脑补,多动脑,肯定没坏处,哈哈哈... 说起Java中的线程池技术,在很多 ...
- [shell] shell 变量生命周期, source, export
1. shell 的派生 用户登录到Linux系统后,系统将启动一个用户shell.在这个shell中,可以使用shell命令, 或声明变量,也可以创建并运行shell脚本程序.运行shell脚本程序 ...
- kms在线激活windows和office
本激活,只适用vol版本的windows系统和office 激活windows在windows中使用管理员方式打开cmd命令输入slmgr /skms chongking.com切换kms服务器地址为 ...