redis info 命令只能获取单个实例的信息。写了一个 shell ,可以方便的获取 redis 集群的汇总信息:

#!/bin/sh

ip=10.21.61.43
port=6379
sum_size=0
sum_mem=0
sum_conn=0
for addr in `redis-cli -p $port -h $ip cluster nodes | awk '{print $2}'`
do
    host=`echo $addr | awk -F: '{print $1}'`
    hport=`echo $addr | awk -F: '{print $2}'`
    role=`redis-cli -p $hport -h $host info | grep "role:" | awk -F: '{print $2}' | tr -d '\r\n'`

    if [ $role = "slave" ];then
        continue
    fi

    dbsize=`redis-cli -p $hport -h $host dbsize`
    mem=`redis-cli -p $hport -h $host info | grep "used_memory:" | awk -F: '{print $2}' | tr -d '\r\n' | tr -d 'G'`
    conn=`redis-cli -p $hport -h $host info | grep "connected_clients:" | awk -F: '{print $2}' | tr -d '\r\n' | tr -d 'G'`
    mem=$(awk "BEGIN{print $mem/1024.0/1024.0/1024.0}")
    
    echo "$host $hport mem $mem G , dbsize $dbsize, connected_clients $conn"

    sum_size=`expr $dbsize + $sum_size`
    sum_mem=$(awk "BEGIN{print $sum_mem + $mem}")
    sum_conn=$(awk "BEGIN{print $sum_conn + $conn}")
done

echo "集群dbsize 总数:$sum_size"
echo "集群内存(G) 总数:$sum_mem"
echo "连接数 总数:$sum_conn"

本文由 arganzheng 创作,采用 CC BY 4.0 许可协议。在保留原文作者、署名以及完整原文链接(https://arganzheng.life/redis-cluster-info.html)的前提下,欢迎各种形式的转载、翻译或商业引用。


COMMENTS

评论存放在 GitHub Discussions, 用 GitHub 账号登录即可发表,支持 Markdown。 想针对正文某句话说?选中那段文字,点浮出的「评论」即可划线评论;觉得哪里写错了,发表时勾上「同时提交 Issue」。 有人回复你时 GitHub 会按你的通知设置发邮件,不用守在这里。

×