中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

运行测试

编译安装Redis后,请先启动Redis服务器,并采用Redis自带的redis-benchmark基准测试工具进行性能测试。

本文了提供Redis-benchmark常用命令的命令格式、命令选项及其说明,以及Redis-benchmark命令的使用示例。

命令格式

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

命令选项及其说明

表1 Redis-benchmark常用命令选项及其说明

命令选项

命令选项说明

-h <hostname>

指定Redis服务器主机名或IP地址。默认为127.0.0.1。

-p <port>

指定Redis服务器端口号。默认为6379。

-s <socket>

指定使用socket方式连接。使用该选项时hostname和port无效。

-a <password>

指定Redis服务器密码。

-user <username>

指定连接Redis服务器时使用的用户名。

-c <clients>

指定并发连接数。默认为50。

-n <requests>

指定发送请求数。默认为100000。

-d <size>

配置SET/GET操作的数据大小,单位为bytes。默认为3。

-dbnum <db>

指定db序列号。默认为0。

-threads <num>

开启客户端多线程模式并指定线程数。

-cluster

开启集群测试模式。

-trac

在测试启动前发送客户端跟踪。

-k <boolean>

测试过程是否断开连接,即长连接或短连接。1表示长连接,0表示短连接。默认为1。

-r <keyspacelen>

配置指定数据的key,对SET/GET/INCR使用随机key,对SADD使用随机value,对ZADD使用随机成员和分数。

-P <numreq>

开启管道并配置每个请求的数据量。默认为1。

-q

不输出过程数据。

-csv

使用CSV格式输出测试结果。

-l

循环模式,循环执行测试。

-t <tests>

指定测试的命令类型,如PING、SET、GET等,以“,”分隔。

-I

空闲模式,只打开空连接并等待。

使用示例

  1. 启动Redis服务器。
    redis-server
  2. 开启10个redis-benchmark线程,创建1000个连接并随机发送10000000个set、get请求。
    redis-benchmark -h 127.0.0.1 -c 1000 -n 10000000 -r 10000000 -t set,get --threads 10

    测试string类型时,如果Redis服务端没有使用SET指令提前插入数据,测试GET模型时Redis服务端将返回空数据,此时的数据包大小对比先SET后GET的数据包会偏小。测试其他数据类型时(如list、zset等),原理一样。

    测试结果主要包含三部分:主要参数配置、时延详细分布情况和每秒处理请求数以及时延汇总数据。

    图1 主要参数配置示例
    图2 时延详细分布情况示例
    图3 每秒处理请求数以及时延汇总数据示例