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 }