Redis
Redis 包含一个名为 redis-benchmark 的性能测试工具,它可以模拟 N 个客户端同时向 Redis 发送 M 条查询命令的应用场景(类似于 Apache 的 ab 工具)。
语法格式
Redis 性能测试的基本命令如下
- 注意:该命令是在 redis 的目录下执行的,而不是 redis 客户端的内部指令。
- 注意:redis-benchmark 的测试结果和硬件关联比较大,尤其是 CPU 主频的频率。
# 工具使用格式$ redis-benchmark [option] [option value]
参数解释
Redis 性能测试工具可选参数如下所示
| 序号 | 选项 | 描述 | 默认值 |
|---|---|---|---|
| 1 | -h | 指定压测服务器的主机地址 | 127.0.0.1 |
| 2 | -p | 指定压测服务器的端口 | 6379 |
| 3 | -s | 指定服务器socket |
|
| 4 | -c | 指定并发连接数 | 50 |
| 5 | -n | 指定请求数 | 10000 |
| 6 | -d | 以字节的形式指定SET/GET值的数据大小 |
2 |
| 7 | -k | 1=keepalive 0=reconnect |
1 |
| 8 | -r | SET/GET/INCR使用随机key , SADD使用随机值 |
|
| 9 | -p | 通过管道传输<numreq>请求 |
1 |
| 10 | -q | 强制退出redis ;仅显示query/sec值 |
|
| 11 | -csv | 以csv格式输出 |
|
| 12 | -l | 生成循环,永久执行测试 | |
| 13 | -t | 仅运行以逗号分隔的测试命令列表。 | |
| 14 | -l | Idle模式;仅打开N个idle连接并等待。 |
实例演示
同时执行 10000 个请求来检测性能
#同时执行 10000 个请求来检测性能$ redis-benchmark -n 10000 -qPING_INLINE: 141043.72 requests per secondPING_BULK: 142857.14 requests per secondSET: 141442.72 requests per secondGET: 145348.83 requests per secondINCR: 137362.64 requests per secondLPUSH: 145348.83 requests per secondLPOP: 146198.83 requests per secondSADD: 146198.83 requests per secondSPOP: 149253.73 requests per secondLPUSH (needed to benchmark LRANGE): 148588.42 requests per secondLRANGE_100 (first 100 elements): 58411.21 requests per secondLRANGE_300 (first 300 elements): 21195.42 requests per secondLRANGE_500 (first 450 elements): 14539.11 requests per secondLRANGE_600 (first 600 elements): 10504.20 requests per secondMSET (10 keys): 93283.58 requests per second
使用了多个参数来测试 Redis 性能
#使用了多个参数来测试 Redis 性能# 主机为127.0.0.1;端口号为6379;执行的命令为set/lpush# 请求数为10000,通过 -q 参数让结果只显示每秒执行的请求数$ redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -qSET: 146198.83 requests per secondLPUSH: 145560.41 requests per second
