redis一键巡检脚本分享

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: redis一键巡检脚本分享

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

#!/bin/bash

# 检查是否安装了redis-cli工具

if ! command -v redis-cli &> /dev/null

then

   echo "redis-cli could not be found, please install it first."

   exit 1

fi

# 设置你的Redis地址和端口

REDIS_HOST="127.0.0.1"

REDIS_PORT=6379

# 登录的密码,如果没有设置密码,这一行可以注释掉

REDIS_PASSWORD="123456"

function check_redis() {

   local HOST=$1

   local PORT=$2

   local PASSWORD=$3

   # 执行INFO命令,获取Redis状态信息

   if [ -z "$PASSWORD" ]; then

       REDIS_INFO=$(redis-cli -h $HOST -p $PORT INFO)

   else

       REDIS_INFO=$(redis-cli -h $HOST -p $PORT -a $PASSWORD INFO)

   fi

   echo "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" ]; then

       echo "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)))

       do

           SLAVE_INFO=$(echo "$REDIS_INFO" | grep "^slave${i}:")

           echo "Slave ${i}: $SLAVE_INFO"

       done

   elif [ "$ROLE" = "slave" ]; then

       echo "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"

   fi

   echo "-----------------------------------------"

}

# 单机模式巡检

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; do

   NODE_IP=$(echo $NODE | cut -d':' -f1)

   NODE_PORT=$(echo $NODE | cut -d':' -f2)

   check_redis $NODE_IP $NODE_PORT $REDIS_PASSWORD

done

脚本说明:

检查redis-cli工具是否安装:如果没有安装,则提示安装。

基本配置:你需要设置Redis的地址、端口以及密码(如果有的话)。

函数check_redis:这是核心函数,它接受主机、端口和密码作为参数并执行检查。

内存使用、连接数、key数量检查:通过redis-cli INFO命令提取相关信息。

区分单机、主从、集群:通过检查role字段来判断Redis的角色,并针对不同的角色执行相应的操作。

单机模式巡检:对单个Redis实例执行检查。

集群模式巡检:遍历所有集群节点进行检查。

相关文章
|
12月前
|
缓存 NoSQL Redis
Redis 脚本
10月更文挑战第18天
143 3
|
8月前
|
缓存 NoSQL 搜索推荐
【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
本文介绍了如何通过Lua脚本在Redis中实现分布式锁的原子性操作,避免并发问题。首先讲解了Lua脚本的基本概念及其在Redis中的使用方法,包括通过`eval`指令执行Lua脚本和通过`script load`指令缓存脚本。接着详细展示了如何用Lua脚本实现加锁、解锁及可重入锁的功能,确保同一线程可以多次获取锁而不发生死锁。最后,通过代码示例演示了如何在实际业务中调用这些Lua脚本,确保锁操作的原子性和安全性。
432 6
【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
|
7月前
|
缓存 NoSQL 测试技术
Redis压测脚本及持久化机制
Redis压测脚本及持久化机制简介: Redis性能压测通过`redis-benchmark`工具进行,可评估读写性能。持久化机制包括无持久化、RDB(定期快照)和AOF(操作日志),以及两者的结合。RDB适合快速备份与恢复,但可能丢失数据;AOF更安全,记录每次写操作,适合高数据安全性需求。两者结合能兼顾性能与安全性,建议同时开启并定期备份RDB文件以确保数据安全。
148 9
|
8月前
|
NoSQL Redis 数据库
Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
通过本文的介绍,我们详细讲解了 Lua 脚本在 Redis 中的作用、`eval` 命令的使用方法以及 `redis.call` 和 `redis.pcall` 的区别和用法。通过合理使用 Lua 脚本,可以实现复杂的业务逻辑,确保操作的原子性,并减少网络开销,从而提高系统的性能和可靠性。
293 13
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
477 0
|
缓存 分布式计算 NoSQL
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
143 2
|
存储 NoSQL 容灾
Redis巡检检查 redis-check-aof
Redis巡检检查 redis-check-aof
275 2
|
缓存 监控 NoSQL
【Azure Redis 缓存】使用Python代码获取Azure Redis的监控指标值 (含Powershell脚本方式)
【Azure Redis 缓存】使用Python代码获取Azure Redis的监控指标值 (含Powershell脚本方式)
|
存储 人工智能 NoSQL
AI自动化!redis高效部署脚本
AI自动化!redis高效部署脚本
132 0
|
存储 NoSQL Redis
Tair的发展问题之在Redis集群模式下,Lua脚本操作key面临什么问题,如何解决
Tair的发展问题之在Redis集群模式下,Lua脚本操作key面临什么问题,如何解决
下一篇
oss教程