美文网首页
Redis 性能测试

Redis 性能测试

作者: 走在成长的道路上 | 来源:发表于2020-08-17 19:11 被阅读0次

    本文使用 redis 自带的 redis-benchmark 工具进行压力测试

    参数说明

    命令格式如下:

    Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]
    

    参数说明如下:

    选项 描述 默认值
    -h 指定服务器主机名 127.0.0.1
    -p 指定服务器端口 6379
    -s 指定服务器 socket
    -c 指定并发连接数 50
    -n 指定请求数 10000
    -d 以字节的形式指定 SET/GET 值的数据大小 2
    -k 1=keep alive 0=reconnect 1
    -r SET/GET/INCR 使用随机 key, SADD 使用随机值
    -P 通过管道传输 <numreq> 请求 1
    -q 强制退出 redis。仅显示 query/sec 值
    --csv 以 CSV 格式输出
    -l 生成循环,永久执行测试
    -t 仅运行以逗号分隔的测试命令列表
    -I Idle 模式。仅打开 N 个 idle 连接并等待

    仅显示指标数据测试100000次: redis-benchmark -q -n 100000

    常见测试用例

    1. 压测指定命令列表 get,set
    redis-benchmark -h 127.0.0.1 -p 6086 -c 50 -n 10000 -t set,lpush
    
    1. 长链接压测
    redis-benchmark -h host -p port -t ping -c 10000 -n 500000 -k 1
    
    1. 命令方式
    redis-benchmark -n 100000 -q script load “redis.call(‘set’,’foo’,’bar’)”
    

    常见指标检查

    #!/bin/bash
    # -------------------------------------------------------------------------------
    # FileName:    check_redis.sh
    # Revision:    1.0
     
    REDIS_CLI_COMMAND="redis-cli"
    REDIS_HOST="172.18.1.*"
    REDIS_PORT="28001"
     
    ARGS=1
     
    if [ $# -ne "$ARGS" ];then
        echo "Please input one arguement:"
    fi
    #!/bin/bash
    
    while getopts 's:p:' OPT; do
        case $OPT in
            s)
                REDIS_HOST="$OPTARG";;
            p)
                REDIS_PORT="$OPTARG";;
            h)
                echo "Usage: `basename $0` [-s server] [-p port] command";
                echo "        command: connected_clients, used_memory_rss_human ...etc.";
                exit 1;;
        esac
    done
    
    shift $((OPTIND - 1))
    COMMAND=$@ 
    
    echo "the redis server: $REDIS_HOST:$REDIS_PORT command: $COMMAND"
    
    case $COMMAND in
        connected_clients)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "connected_clients" | awk -F':' '{print $2}'`
                echo $result
                ;;
        used_memory_rss_human)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "used_memory_rss_human" | awk -F':' '{print $2}'`
                echo $result
                ;;
        used_memory_peak_human)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "used_memory_peak_human" | awk -F':' '{print $2}'`
                echo $result
                ;;
        total_connections_received)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "total_connections_received" | awk -F':' '{print $2}'`
                echo $result
                ;;
        instantaneous_ops_per_sec)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "instantaneous_ops_per_sec" | awk -F':' '{print $2}'`
                echo $result
                ;;
        instantaneous_input_kbps)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "instantaneous_input_kbps" | awk -F':' '{print $2}'`
                echo $result
                ;;
        instantaneous_output_kbps)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "instantaneous_output_kbps" | awk -F':' '{print $2}'`
                echo $result
                ;;
        rejected_connections)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "rejected_connections" | awk -F':' '{print $2}'`
                echo $result
                ;;
        expired_keys)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "expired_keys" | awk -F':' '{print $2}'`
                echo $result
                ;;
        evicted_keys)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "evicted_keys" | awk -F':' '{print $2}'`
                echo $result
                ;;
        keyspace_hits)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "keyspace_hits" | awk -F':' '{print $2}'`
                echo $result
                ;;
        keyspace_misses)
            result=`$REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "keyspace_misses" | awk -F':' '{print $2}'`
                echo $result
                ;;
    esac
    

    相关文章

      网友评论

          本文标题:Redis 性能测试

          本文链接:https://www.haomeiwen.com/subject/fzoqjktx.html