近期在做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集群状态信息维护脚本的更多相关文章

  1. redis集群+JedisCluster+lua脚本实现分布式锁(转)

    https://blog.csdn.net/qq_20597727/article/details/85235602 在这片文章中,使用Jedis clien进行lua脚本的相关操作,同时也使用一部分 ...

  2. redis集群搭建+lua脚本的使用

    详细参考这篇文章(windows) https://blog.csdn.net/qiuyufeng/article/details/70474001 一.使用JAVA代码操作redis集群 publi ...

  3. 执行redis命令redis-trib.rb查看集群信息报错cannot load such file -- redis (LoadError)

    问题描述: 在执行redis-trib.rb命令查看集群状态的时候,报错: [aiprd@hadoop1 ~]$ redis-trib.rb check Traceback (most recent ...

  4. reids集群状态正常redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster

    重新启动redis集群时启动失败,报错: redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachab ...

  5. Redis集群入门

    官方文章: https://redis.io/topics/cluster-tutorial#redis-cluster-configuration-parameters 本文永久地址: https: ...

  6. Redis集群进阶之路

    Redis集群规范 本文档基于Redis 3.X或更高版本,讲解Redis集群算法以及设计原理.此官方文档长期更新且随着Redis新版本特性的变化变动,详细请留意官网. 官网地址:https://re ...

  7. Redis总结(八)如何搭建高可用的Redis集群

    以前总结Redis 的一些基本的安装和使用,大家可以这这里查看Redis 系列文章:https://www.cnblogs.com/zhangweizhong/category/771056.html ...

  8. redis集群学习

    转载: http://arganzheng.life/redis-cluster.html Redis3.0版本加入了cluster功能,解决了Redis单点无法横向扩展的问题. 分布式系统要解决的不 ...

  9. Redis 集群之 Redis-Cluster

    Redis集群官方推荐方案 Redis-Cluster 集群 redis cluster 通过分片实࣫容量扩展 通过主从复制实࣫节点的高可用 节点之间互相通信 每个节点都维护整个集群的节点信息 red ...

随机推荐

  1. opencv笔记

    加载图像: OpenCV支持图像格式Windows位图(bmp),便携式图像格式(pbm,pgm,ppm)和Sun光栅(sr,ras). Mat image = imread( imageName, ...

  2. 微信小程序图片上传java后台(前后端代码)

    小程序代码 upload:function(e){ var that = this; wx.showActionSheet({ itemList: ['从相册选择','拍照'], itemColor: ...

  3. Android Bitmap详细介绍(3)

    package com.testbitmapscale; import java.io.File; import java.io.FileInputStream; import java.io.Fil ...

  4. 微信小程序(template的使用)

    小程序的template是一个模版功能,在创建一个template后,其他的页面可以引用,相比component较简单.方便! template只需要两个文件,一个wxss文件和wxml文件,也只有这 ...

  5. Java多线程基础(面试向)

    ----?为什么要用到多线程 CPU是以时间片的方式为进程分配CUP处理时间的,如果当一个进程同时要完成几件事的时候,如当从网上下载文件的时候,需要一边下载一边显示进度而且还要一边保存,如果按照单线程 ...

  6. 树莓派2-SSH

    树莓派3系统SSH是默认关闭的, 将SD卡插入linux, 在root 分区, 修改/etc/rc.local 在exit 0前增加一行 /ect/init.d/ssh start 将SD卡插回树莓派 ...

  7. 【转载】分布式系列文章——Paxos算法原理与推导

    转载:http://linbingdong.com/2017/04/17/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E5%88%97%E6%96%87%E7%AB%A0 ...

  8. FreeRTOS--疑难杂症

    花了3个晚上,把这个章节看完,受益匪浅. 最有用的应该是与中断相关的错误,优先排查中断优先级设置. 堆栈溢出检查,可能用到,一般先把堆栈设置的足够大,只要没有溢出就是好事,溢出了,掌握了栈溢出钩子函数 ...

  9. Reorder the Books-HDU5500

    Problem Description dxy has a collection of a series of books called "The Stories of SDOI" ...

  10. 二级域名相同的情况下子页面调用父页面的js方法

    这两天项目遇到这种需求.项目是一个平台级系统,其中嵌入了多款应用.在平台上可以使用这些应用操作业务. 现在产品提出了个需求:即在A应用中需要调用js方法来打开B应用. 处理方法是:平台js中给出个打开 ...