输出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采用无中心结 ...
随机推荐
- vs2017项目上传到github
如果要把项目提交到一个厂库里面,需要建个git存储库,比如选择新建git库选择VSVIEW文件夹,以后在这个文件夹下的项目,提交时都会提交到VSVIEW这个github仓库 选择的文件夹不在git文件 ...
- Open Images V4 下载自己需要的类别
OpenImages V4数据集描述1)这个v4数据集主要有两种用途:对象检测及分类,意思是说可以用这个数据集训练出对象检测模型,用于识别图像中的对象类别及位置边框.视觉关系检测,比如你用这个v4数据 ...
- 用Python来自动刷智慧树网站的网课
学校最近让看什么网课,智慧树网站的,太无聊了,写个脚本刷下,这里是用Python+selenium实现的,也可以用js脚本,更简单,但是我这里刚好最近在学python,就顺便练习下,说下有几个点, 1 ...
- 微信小程序开发技巧总结(二) -- 文件的选取、移动、上传和下载
微信小程序开发技巧总结(二) -- 文件的选取.移动.上传和下载 1.不同类型文件的选取 1.1 常用的图片 视频 对于大部分开发者来说,需要上传的文件形式主要为图片,微信为此提供了接口. wx.ch ...
- 菜鸡发现腾讯视频bug
腾讯视频bug 我看一个将夜,出现三生三世? 这是为啥? 发现bug,会得到奖励吗? 不会像dnf一样游戏自己的bug,然后出现伤害999,把我号封了. 我这样会被封号吗?我应该怎么做才不会被封?好慌 ...
- html标签学习入门 随笔
Html学习入门 随笔1: HTML 标题 HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的. 标题仅用于标题文本 不应该被使用在加粗字 ...
- PyObject and PyTypeObject - Python 中的 '对象' 们
1 PyObject, PyTypeObject - Python 中的 '对象' 们 '一切皆对象' - 这是 Python 的学习和使用者们最最常听到一句, 可谓 博大精深 - '勃大精深'. ' ...
- [redis读书笔记] 第三部分 多机数据库的实现 复制
另外一篇写的很好很深入的文章:http://www.tuicool.com/articles/fAnYFb : RDB持久化 http://www.tuicool.com/articles/F3Eri ...
- .NET Core之单元测试(三):Mock框架Moq的使用
编写一个API 新增一个接口 public interface IFoo { bool Ping(string ip); } 接口实现 public class Foo : IFoo { public ...
- java 入门如何设计类
2019/12/24 | 在校大二上学期 | 太原科技大学 初学java后,我们会发现java难点不在于Java语法难学,而是把我们挂在了如何设计类的“吊绳”上了.这恰恰也是小白 ...