输出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采用无中心结 ...
随机推荐
- Codeforces 1188B Count Pairs (同余+分离变量)
题意: 给一个3e5的数组,求(i,j)对数,使得$(a_i+a_j)(a_i^2+a_j^2)\equiv k\ mod\ p$ 思路: 化简$(a_i^4-a_j^4)\equiv k(a_i-a ...
- 《Redis5.x入门教程》正式推出
关注公众号CoderBuff回复"redis"可抢先获取<Redis5.x入门教程>PDF完整版 在<ElasticSearch6.x实战教程>之后,又斗胆 ...
- 使用docker19.03.6部署zabbix
可参考官方文档:https://www.zabbix.com/documentation/4.0/zh/manual/installation/containers 1)启动一个空的mysql服务器实 ...
- 线索二叉树C++实现
#include<iostream> #include<stdlib.h> #define maxsize 100 using namespace std; typedef s ...
- golang搭建一个简单的web服务器
package main import ( "io/ioutil" "log" "net/http" ) func main() { htt ...
- linux 下生成随机密码生成器
[root@localhost ~]# yum -y install pwgen [root@localhost ~]# pwgen -ncCyB1 8 1 kei%b3Xa [root@localh ...
- Vscode开发Python环境安装
VSCode 开发 Python 使用python,主要是做一些工具和爬虫的操作,语法简单,功能复杂,入手很快. 我们通过在 VSCode 中搜索 Python 插件,发现,开发 python 的话, ...
- light oj 1102 - Problem Makes Problem组合数学(隔板法)
1102 - Problem Makes Problem As I am fond of making easier problems, I discovered a problem. Actuall ...
- 【转载】s19文件格式详解
来源:http://blog.csdn.net/xxxl/article/details/19494187 1.概述 为了在不同的计算机平台之间传输程序代码和数据,摩托罗拉将程序和数据文件以一种可打印 ...
- Asp.net Core MVC(三)UseMvc设置路由
在家办公,下班继续看点东西,不废话,继续看MVC的路由. asp.net核心mvc的路由是建立在asp.net核心的路由之上的.通过终结点加载路由中间件的配置方式在此不细说了,(DOTNET Core ...