Redis 基准测试

Redis 基准测试


Redis 基准测试 redis-benchmark 是一种实用工具,它可以模拟 N 个客户端同时向 Redis 发送 M 条查询命令的应用场景(类似于 Apache 的 ab 工具)。

语法格式

Redis 基准测试的基本命令如下

# 工具使用格式
$ redis-benchmark [option] [option value]

这里有两点需要注意一下:

  • 该命令是在 redis 的目录下执行的,而不是 redis 客户端的内部执行。
  • redis-benchmark 的测试结果和硬件关联比较大,尤其是 CPU 主频的频率。

示例

以下实例同时执行 10000 个请求来检测性能:

$ redis-benchmark -n 10000  -q

PING_INLINE: 141043.72 requests per second
PING_BULK: 142857.14 requests per second
SET: 141442.72 requests per second
GET: 145348.83 requests per second
INCR: 137362.64 requests per second
LPUSH: 145348.83 requests per second
LPOP: 146198.83 requests per second
SADD: 146198.83 requests per second
SPOP: 149253.73 requests per second
LPUSH (needed to benchmark LRANGE): 148588.42 requests per second
LRANGE_100 (first 100 elements): 58411.21 requests per second
LRANGE_300 (first 300 elements): 21195.42 requests per second
LRANGE_500 (first 450 elements): 14539.11 requests per second
LRANGE_600 (first 600 elements): 10504.20 requests per second
MSET (10 keys): 93283.58 requests per second

Redis 性能测试工具可选参数如下所示

选项 描述 默认值
-h 指定服务器主机名 127.0.0.1
-p 指定服务器端口 查看服务是否运行
-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 连接并等待

示例

使用了多个参数来测试 Redis 性能

$ redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q
SET: 146198.83 requests per second
LPUSH: 145560.41 requests per second

主机为127.0.0.1;端口号为6379;执行的命令为set/lpush。请求数为10000,通过 -q 参数让结果只显示每秒执行的请求数

查看笔记

扫码一下
查看教程更方便