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 }