编写 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

}
复制代码

 

posted @   心随所遇  阅读(1448)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2016-11-25 PHP扩展开发
2016-11-25 PHP文件处理类
2016-11-25 PHP实用的功能函数
点击右上角即可分享
微信分享提示