当前位置: 首页> 教育> 锐评 > Redis一键巡检脚本

Redis一键巡检脚本

时间:2025/7/9 13:19:47来源:https://blog.csdn.net/G_D0120/article/details/139391870 浏览次数:0次

今日分享redis一键巡检脚本,适用于单机、主从和cluster集群。大家有需要的可以先在本地测试,确认没问题后再运行于生产环境。

#!/bin/bash# 检查是否安装了redis-cli工具,如果没有安装,则提示安装if ! command -v redis-cli &> /dev/nullthenecho "redis-cli could not be found, please install it first."exit 1fi# 设置你的Redis地址和端口,如果没有安装,则提示安装REDIS_HOST="127.0.0.1"REDIS_PORT=6379# 登录的密码,如果没有设置密码,这一行可以注释掉REDIS_PASSWORD="123456"function check_redis() {
#这是核心函数,它接受主机、端口和密码作为参数并执行检查local HOST=$1local PORT=$2local PASSWORD=$3# 执行INFO命令,获取Redis状态信息if [ -z "$PASSWORD" ]; thenREDIS_INFO=$(redis-cli -h $HOST -p $PORT INFO)elseREDIS_INFO=$(redis-cli -h $HOST -p $PORT -a $PASSWORD INFO)fiecho "Checking Redis on $HOST:$PORT"# 打印内存使用情况MEMORY_USED=$(echo "$REDIS_INFO" | grep "used_memory_human" | cut -d':' -f2)echo "Memory Used: $MEMORY_USED"# 打印连接数TOTAL_CONNECTIONS=$(echo "$REDIS_INFO" | grep "total_connections_received" | cut -d':' -f2)echo "Total Connections Received: $TOTAL_CONNECTIONS"# 打印当前连接数CURRENT_CONNECTIONS=$(echo "$REDIS_INFO" | grep "connected_clients" | cut -d':' -f2)echo "Currently Connected Clients: $CURRENT_CONNECTIONS"# 打印Key数量TOTAL_KEYS=$(redis-cli -h $HOST -p $PORT -a $PASSWORD DBSIZE)echo "Total Keys: $TOTAL_KEYS"# 打印角色,判断是否为主从结构或集群ROLE=$(echo "$REDIS_INFO" | grep "role" | cut -d':' -f2)echo "Role: $ROLE"if [ "$ROLE" = "master" ]; thenecho "This is a master instance."# 打印已连接的从节点数量以及信息CONNECTED_SLAVES=$(echo "$REDIS_INFO" | grep "connected_slaves" | cut -d':' -f2)echo "Connected Slaves: $CONNECTED_SLAVES"for i in $(seq 0 $(($CONNECTED_SLAVES - 1)))doSLAVE_INFO=$(echo "$REDIS_INFO" | grep "^slave${i}:")echo "Slave ${i}: $SLAVE_INFO"doneelif [ "$ROLE" = "slave" ]; thenecho "This is a slave instance."# 打印主节点的信息MASTER_HOST=$(echo "$REDIS_INFO" | grep "master_host" | cut -d':' -f2)MASTER_PORT=$(echo "$REDIS_INFO" | grep "master_port" | cut -d':' -f2)echo "Connected to Master: $MASTER_HOST:$MASTER_PORT"fiecho "-----------------------------------------"}# 单机模式巡检check_redis $REDIS_HOST $REDIS_PORT $REDIS_PASSWORD# 如果有多个Redis实例(如主从结构或集群模式),可以增加相应的IP和端口# 如:check_redis "192.168.1.1" 6380 "yourpassword"# 集群模式巡检,通过集群节点遍历# 获取集群节点列表CLUSTER_NODES=$(redis-cli -h $REDIS_HOST -p $REDIS_PORT -a $REDIS_PASSWORD CLUSTER NODES | awk '{print $2}' | awk -F@ '{print $1}')for NODE in $CLUSTER_NODES; doNODE_IP=$(echo $NODE | cut -d':' -f1)NODE_PORT=$(echo $NODE | cut -d':' -f2)check_redis $NODE_IP $NODE_PORT $REDIS_PASSWORDdone

脚本说明:

  • 检查redis-cli工具是否安装:如果没有安装,则提示安装。
  • 基本配置:你需要设置Redis的地址、端口以及密码(如果有的话)。
  • 函数check_redis:这是核心函数,它接受主机、端口和密码作为参数并执行检查。
  • 内存使用、连接数、key数量检查:通过redis-cli INFO命令提取相关信息。
  • 区分单机、主从、集群:通过检查role字段来判断Redis的角色,并针对不同的角色执行相应的操作。
  • 单机模式巡检:对单个Redis实例执行检查。
  • 集群模式巡检:遍历所有集群节点进行检查。
关键字:Redis一键巡检脚本

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: