redis集群状态信息维护脚本
近期在做redis相关的东西。须要把2台redis切分成16个shard。 16个主shard分布在4台128G的机器上,从shard分布在12台64G的机器上。因为机器太多,查询相关的信息不太方便。特别是我要手动的去查询或者删除某些信息就须要去每台机器上查看,当然也能够通过相关的程序来查询和删除,这里主要介绍怎样利用linux shell来实现这个目标。
详细的脚本内如例如以下:
#!/bin/bash
topic=(xx.x.xx.xx:6385 xx.x.xxx.xx:6387)
topic_slave=(xx.xx.xx.xx:7382 xx.xx.xx.x:7382)
function lookup() {
i=0
servers=($1)
count=${#servers[@]}
ops=$2
while [ $i -lt $count ]
do
server=${servers[$i]}
host=`echo $server | cut -d: -f1`
port=`echo $server | cut -d: -f2`
echo "Redis[$host:$port] $ops"
(echo -en "$ops\r\n"; sleep 1) | nc $host $port
i=$((i+1))
done
}
cmdstr=$@
prefix=`echo $cmdstr | cut -d' ' -f1`
key=`echo $cmdstr | cut -d' ' -f2-`
case "$prefix" in
t)
lookup "${topic[*]}" "$key"
;;
ts)
lookup "${topic_slave[*]}" "$key"
;;
esac
exit 0
详细命令方式为: sh redis-cluster.sh t info 为查询redis集群的信息, sh redis-cluster.sh t get key 获取集群中key的值。这里t指的是主shard, ts相应的是从shard,事实上也能够依照数据类型来分shard进行查询,原理是比較类似的。
利用以上脚本能够比較方便的指导集群的信息,比方占用内存的信息能够採用下面方式:#!/bin/bash
sh redis-cluster.sh t info | grep "used_memory_human" | awk -F":" 'BEGIN{sum = 0}{ t=substr($2, length($2)-1, 1); s=substr($2, 0, length($2) -2 ); if(t=="G") {sum += s*1024;} else {sum += s;}} END{print sum}'
redis集群状态信息维护脚本的更多相关文章
- redis集群+JedisCluster+lua脚本实现分布式锁(转)
https://blog.csdn.net/qq_20597727/article/details/85235602 在这片文章中,使用Jedis clien进行lua脚本的相关操作,同时也使用一部分 ...
- redis集群搭建+lua脚本的使用
详细参考这篇文章(windows) https://blog.csdn.net/qiuyufeng/article/details/70474001 一.使用JAVA代码操作redis集群 publi ...
- 执行redis命令redis-trib.rb查看集群信息报错cannot load such file -- redis (LoadError)
问题描述: 在执行redis-trib.rb命令查看集群状态的时候,报错: [aiprd@hadoop1 ~]$ redis-trib.rb check Traceback (most recent ...
- reids集群状态正常redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster
重新启动redis集群时启动失败,报错: redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachab ...
- Redis集群入门
官方文章: https://redis.io/topics/cluster-tutorial#redis-cluster-configuration-parameters 本文永久地址: https: ...
- Redis集群进阶之路
Redis集群规范 本文档基于Redis 3.X或更高版本,讲解Redis集群算法以及设计原理.此官方文档长期更新且随着Redis新版本特性的变化变动,详细请留意官网. 官网地址:https://re ...
- Redis总结(八)如何搭建高可用的Redis集群
以前总结Redis 的一些基本的安装和使用,大家可以这这里查看Redis 系列文章:https://www.cnblogs.com/zhangweizhong/category/771056.html ...
- redis集群学习
转载: http://arganzheng.life/redis-cluster.html Redis3.0版本加入了cluster功能,解决了Redis单点无法横向扩展的问题. 分布式系统要解决的不 ...
- Redis 集群之 Redis-Cluster
Redis集群官方推荐方案 Redis-Cluster 集群 redis cluster 通过分片实࣫容量扩展 通过主从复制实࣫节点的高可用 节点之间互相通信 每个节点都维护整个集群的节点信息 red ...
随机推荐
- http 1.0 http 1.1 http 2.0的区别
HTTP/1.0 版的主要缺点是,每个TCP连接只能发送一个请求.发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接. http1.1优点: 1.HTTP 1.1 版引入了持久连接( ...
- vue组件之this指向问题
[问题描述] 返回顶部组件里,用到数据操作.通过方法里改动this数据,但发现直接使用失效 mounted() { window.onscroll=function(){ ) { this.isAct ...
- js模拟支付宝发送短信验证码&&&&短信倒计时
html <div class="pwdContent"> <div class="pwdBox"></div> <d ...
- 【C语言】控制台窗口图形界面编程(一)句柄和文本属性
目录 00. 目录 01. 句柄 02. GetStdHandle函数 03. CloseHandle函数 04. SetConsoleTextAttribute函数 05. 十进制颜色对照表 06. ...
- Python机器学习——Agglomerative层次聚类
层次聚类(hierarchical clustering)可在不同层次上对数据集进行划分,形成树状的聚类结构.AggregativeClustering是一种常用的层次聚类算法. 其原理是:最初将 ...
- 一键分享到QQ空间、QQ好友、新浪微博、微信代码
通过qq空间.qq聊天.新浪微博和微信二维码分享平台提供的接口,实现把网页中对应的图片.标题.描述的信息参数用javascript获取后传进接口中,实现一键分享. 使用到的接口(测试时需要登录,网址和 ...
- Python:os模块 time模块
1.os os.popen('cmd').read() 执行某个系统命令,:输出命令结果 os.getcwd() 获取当前操作目录 os.makedirs(r"C:\a\b\c" ...
- Spider-scrapy日志处理
Scrapy生成的调试信息非常有用,但是通常太啰嗦,你可以在Scrapy项目中的setting.py中设置日志显示等级: LOG_LEVEL = 'ERROR' 日志级别 Scrapy日志有五种等级, ...
- <struct、union、enum>差异
关于C++和C的区别 区别最大的是struct,C++中的struct几乎和class一样了,可以有成员函数,而C中的struct只能包含成员变量. enum,union没区别. struct的定义 ...
- C++动态申请内存 new T()与new T[]的区别
new与delete 我们知道,new和delete运算符是用于动态分配和撤销内存的运算符. new的用法 开辟单变量地址空间: i. 如 new int ; 指开辟一个存放数组的存储空间,返回一个指 ...