Redis 性能测试
Redis 性能测试是通过同时执行多个命令实现的。
语法
redis 性能测试的基本命令如下:
redis-benchmark [option] [option value]
注意:该命令是在redis的目录下执行的,而不是redis客户端的内部指令。
实例
以下实例同时执行10000个请求来检测性能:
[root@localhost ~]# redis-benchmark -n 10000 -q
PING_INLINE: 99009.90 requests per second
PING_BULK: 100000.00 requests per second
SET: 98039.22 requests per second
GET: 94339.62 requests per second
INCR: 98039.22 requests per second
LPUSH: 98039.22 requests per second
RPUSH: 99009.90 requests per second
LPOP: 99009.90 requests per second
RPOP: 100000.00 requests per second
SADD: 99009.90 requests per second
HSET: 86956.52 requests per second
SPOP: 101010.10 requests per second
LPUSH (needed to benchmark LRANGE): 92592.59 requests per second
LRANGE_100 (first 100 elements): 96153.84 requests per second
LRANGE_300 (first 300 elements): 93457.95 requests per second
LRANGE_500 (first 450 elements): 99009.90 requests per second
LRANGE_600 (first 600 elements): 102040.82 requests per second
MSET (10 keys): 86956.52 requests per second
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=keep alive 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 | -I | Idle 模式。仅打开 N 个 idle 连接并等待。 |
实例
以下实例我们使用了多个参数来测试redis性能:
[root@localhost ~]# redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q
SET: 102040.82 requests per second
LPUSH: 100000.00 requests per second
以上实例中主机为127.0.0.1,端口号为6379,执行的命令为set,lpush请求数为10000,通过-q参数让结果只显示每秒执行的请求数。