Redis一键巡检脚本

2024-06-03 08:36
文章标签 redis 一键 脚本 巡检

本文主要是介绍Redis一键巡检脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今日分享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一键巡检脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1026489

相关文章

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

Redis的持久化之RDB和AOF机制详解

《Redis的持久化之RDB和AOF机制详解》:本文主要介绍Redis的持久化之RDB和AOF机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述RDB(Redis Database)核心原理触发方式手动触发自动触发AOF(Append-Only File)核

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de