Redis clusterのノードのメモリ使用状況を取得します。

7525 ワード

原文のリンク:http://www.cnblogs.com/imdba/p/10216564.html
 
需要:redis clusterクラスタ内のすべてのノードのメモリ使用状況を取得する。
 
ip_port=`redis-cli -h $1 -p $2 -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"
  $redis_cmd info all > info.txt
  used=$(cat info.txt | grep -w used_memory_rss_human | awk -F":" '{print $2}'| sed 's/\r//g')
  max=$(cat info.txt | grep -w maxmemory_human | awk -F":" '{print $2}'|sed 's/\r//g')
  system=$(cat info.txt | grep -w total_system_memory_human | awk -F":" '{print $2}'|sed 's/\r//g')
  role=$(cat info.txt | grep -w role | awk -F":" '{print $2}'|sed 's/\r//g')
  printf "%s\t%s\t%s\t%s\t%s\t%s
" "redis_ip="$redis_ip "redis_port="$redis_port "redis_role="$role "used="$used "max="$max "system="$system   rm -rf info.txt done
 
テスト:
[redis@lxd-vm1 ~]$ sh get_redis_memory.sh 5.5.5.101 29001
redis_ip=5.5.5.102      redis_port=29001      redis_role=slave       used=2.95M      max=1.00G      system=2.82G
redis_ip=5.5.5.101      redis_port=29001      redis_role=master      used=2.98M      max=1.00G      system=2.82G
redis_ip=5.5.5.103      redis_port=29002      redis_role=slave       used=2.80M      max=1.00G      system=1.83G
redis_ip=5.5.5.102      redis_port=29002      redis_role=master      used=2.85M      max=1.00G      system=2.82G
redis_ip=5.5.5.101      redis_port=29003      redis_role=slave       used=2.99M      max=1.00G      system=2.82G
redis_ip=5.5.5.103      redis_port=29003      redis_role=master      used=3.02M      max=1.00G      system=1.83G
[redis@lxd-vm1 ~]$
 
転載先:https://www.cnblogs.com/imdba/p/10216564.html