---
title: 运行测试
description: "编译安装Redis后，请先启动Redis服务器，并采用Redis自带的redis-benchmark基准测试工具进行性能测试。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/testguide/tstg/kunpengredis-benchmark_02_0005.html
sourcePath: /source/zh/kunpengdbs/testguide/tstg/kunpengredis-benchmark_02_0005.html
indexId: 4e25d255ff628d64505013955d3cbf9532fa053cbe2abe4a36706fca73c5227372
---
# 运行测试

编译安装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服务器。
  1 redis-server

2. 开启10个redis-benchmark线程，创建1000个连接并随机发送10000000个set、get请求。
  1 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 每秒处理请求数以及时延汇总数据示例
