獲取redis cluster中所有節點的內存使用情況


 

需求:獲取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\n" "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 ~]$

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM