編寫 Redis 測試 shell 腳本


redis-cli 是交互模式,每次測試都要一條條寫命令,有點煩了。特別是一些多條命令組合實現功能的時候,還是用腳本測試,更容易學習。

請看效果圖:

 

下面把代碼寫在下面了

 

#!/usr/bin/env bash
:<<EOF
Redis 測試腳本
測試之前,先關閉所有 Redis 服務器:
sudo pkill -9 redis-server

關閉單台服務器
redis-cli -p <port> -a <requirepass>  shutdown

用法:
. ./demo-redis.sh
-connect

EOF





function shutdowns(){

    sleep 5
    for port in "$@"
    do
        redis-cli -p $port shutdown
    done

}


### ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
### 連接測試
### ========================================================================
### 
### ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function -connect(){

redis-server --port 6380 --daemonize yes
redis-cli -p 6380 --raw <<EOF

echo "測試開始..."
set uname "張三"
get uname
shutdown
quit

EOF

}


### ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
### 客戶端執行一些命令
### ========================================================================
### 
### ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function -client(){

#啟動服務器
redis-server --port 6380 --requirepass 123456 --daemonize yes

#連接1
redis-cli -p 6380 <<EOF

auth 123456
time
client setname "client-1"
client getname

EOF

#連接2
redis-cli -p 6380 <<EOF

auth 123456
client setname "client-2"
client list
client kill 127.0.0.1:45888

EOF

shutdowns 6380


}




### ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
### 主從復制
### ========================================================================
### 主服務器中寫入數據,再從從服務器上讀取數據
### ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function -copy(){

#啟動主服務器
redis-server --port 6380 --daemonize yes
#啟動從服務器
redis-server --port 6381 --replicaof 127.0.0.1 6380 --daemonize yes

#連接主服務器
redis-cli -p 6380 <<EOF

role
set uname "Tom"
get uname
quit

EOF

#連接從服務器
redis-cli -p 6381 <<EOF

role
get uname
replicaof no one

EOF

#關閉服務器
shutdowns 6380 6381


}


function -transaction(){

redis-server --port 6380 --daemonize yes

redis-cli -p 6380 --raw <<EOF

echo "設置並監視 books:"
echo "==================================================================================="
set books 1
watch books
echo "==================================================================================="

echo "調用 incr books 修改了 books 的值:"
echo "==================================================================================="
incr books
echo "==================================================================================="

echo "開始事務:"
echo "==================================================================================="
multi
set books 10
incr books
exec
get books
echo "==================================================================================="

echo "第二次測試 watch 之后, 不改變 books 的值:"
echo "==================================================================================="
watch books
multi
set books 10
incr books
exec

EOF

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM