Redis一鍵巡檢腳本的實(shí)現(xiàn)
今日分享redis一鍵巡檢腳本,適用于單機(jī)、主從和cluster集群。大家有需要的可以先在本地測(cè)試,確認(rèn)沒問題后再運(yùn)行于生產(chǎn)環(huán)境。
#!/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
# 設(shè)置你的Redis地址和端口,如果沒有安裝,則提示安裝
REDIS_HOST="127.0.0.1"
REDIS_PORT=6379
# 登錄的密碼,如果沒有設(shè)置密碼,這一行可以注釋掉
REDIS_PASSWORD="123456"
function check_redis() {
#這是核心函數(shù),它接受主機(jī)、端口和密碼作為參數(shù)并執(zhí)行檢查
local HOST=$1
local PORT=$2
local PASSWORD=$3
# 執(zhí)行INFO命令,獲取Redis狀態(tài)信息
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"
# 打印內(nèi)存使用情況
MEMORY_USED=$(echo "$REDIS_INFO" | grep "used_memory_human" | cut -d':' -f2)
echo "Memory Used: $MEMORY_USED"
# 打印連接數(shù)
TOTAL_CONNECTIONS=$(echo "$REDIS_INFO" | grep "total_connections_received" | cut -d':' -f2)
echo "Total Connections Received: $TOTAL_CONNECTIONS"
# 打印當(dāng)前連接數(shù)
CURRENT_CONNECTIONS=$(echo "$REDIS_INFO" | grep "connected_clients" | cut -d':' -f2)
echo "Currently Connected Clients: $CURRENT_CONNECTIONS"
# 打印Key數(shù)量
TOTAL_KEYS=$(redis-cli -h $HOST -p $PORT -a $PASSWORD DBSIZE)
echo "Total Keys: $TOTAL_KEYS"
# 打印角色,判斷是否為主從結(jié)構(gòu)或集群
ROLE=$(echo "$REDIS_INFO" | grep "role" | cut -d':' -f2)
echo "Role: $ROLE"
if [ "$ROLE" = "master" ]; then
echo "This is a master instance."
# 打印已連接的從節(jié)點(diǎn)數(shù)量以及信息
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."
# 打印主節(jié)點(diǎn)的信息
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 "-----------------------------------------"
}
# 單機(jī)模式巡檢
check_redis $REDIS_HOST $REDIS_PORT $REDIS_PASSWORD
# 如果有多個(gè)Redis實(shí)例(如主從結(jié)構(gòu)或集群模式),可以增加相應(yīng)的IP和端口
# 如:check_redis "192.168.1.1" 6380 "yourpassword"
# 集群模式巡檢,通過集群節(jié)點(diǎn)遍歷
# 獲取集群節(jié)點(diǎn)列表
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工具是否安裝:如果沒有安裝,則提示安裝。
- 基本配置:你需要設(shè)置Redis的地址、端口以及密碼(如果有的話)。
- 函數(shù)check_redis:這是核心函數(shù),它接受主機(jī)、端口和密碼作為參數(shù)并執(zhí)行檢查。
- 內(nèi)存使用、連接數(shù)、key數(shù)量檢查:通過redis-cli INFO命令提取相關(guān)信息。
- 區(qū)分單機(jī)、主從、集群:通過檢查role字段來判斷Redis的角色,并針對(duì)不同的角色執(zhí)行相應(yīng)的操作。
- 單機(jī)模式巡檢:對(duì)單個(gè)Redis實(shí)例執(zhí)行檢查。
- 集群模式巡檢:遍歷所有集群節(jié)點(diǎn)進(jìn)行檢查。
到此這篇關(guān)于Redis一鍵巡檢腳本的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Redis一鍵巡檢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis如何實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離詳解
Redis的主從架構(gòu),能幫助我們實(shí)現(xiàn)讀多,寫少的情況,下面這篇文章主要給大家介紹了關(guān)于Redis如何實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03
解密Redis助力雙11背后電商秒殺系統(tǒng)(推薦)
這篇文章主要介紹了解密Redis助力雙11背后電商秒殺系統(tǒng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
Windows環(huán)境下Redis Cluster環(huán)境搭建(圖文)
這篇文章主要介紹了Windows環(huán)境下Redis Cluster環(huán)境搭建(圖文),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
redis?lua腳本解決高并發(fā)下秒殺場(chǎng)景
這篇文章主要為大家介紹了redis?lua腳本解決高并發(fā)下秒殺場(chǎng)景,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
Redis報(bào)錯(cuò)NOAUTH?Authentication?required簡(jiǎn)單解決辦法
這篇文章主要給大家介紹了關(guān)于Redis報(bào)錯(cuò)NOAUTH?Authentication?required的簡(jiǎn)單解決辦法,Redis無密碼報(bào)錯(cuò)NOAUTH Authentication required的原因是客戶端訪問Redis時(shí)需要提供密碼,但是沒有提供或提供的密碼不正確,需要的朋友可以參考下2024-05-05
從MySQL到Redis的簡(jiǎn)單數(shù)據(jù)庫遷移方法
這篇文章主要介紹了從MySQL到Redis的簡(jiǎn)單數(shù)據(jù)庫遷移方法,注意Redis數(shù)據(jù)庫基于內(nèi)存,并不能代替?zhèn)鹘y(tǒng)數(shù)據(jù)庫,需要的朋友可以參考下2015-06-06
?Redis?實(shí)現(xiàn)計(jì)數(shù)器和限速器的示例代碼
本文主要介紹了?Redis?實(shí)現(xiàn)計(jì)數(shù)器和限速器的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02

