• 编写 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
    
    }
  • 相关阅读:
    应用SecureCRT(发送接收文件)
    应用mysql(Linux中安装)
    应用tomcat(Linux中安装)
    应用Oracle(Linux中的安装)
    关于Linux(时间网路同步)
    VmWare问题解决(网络变更后虚拟主机无法上网)
    [Android学习笔记]Bitmap,BitmapDrawable,BitmapFactory学习笔记
    [Android学习笔记]获取view的尺寸和坐标
    [Android学习笔记]继承自ViewGroup的控件的过程学习
    [Android学习笔记]Canvas的使用
  • 原文地址:https://www.cnblogs.com/zbseoag/p/14038966.html
Copyright © 2020-2023  润新知