工具

使用redis自带的redis-benchmark,具体用法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# ./redis-benchmark --help
Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]
-h 指定服务器主机名 127.0.0.1
-p 指定服务器端口 6379
-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 连接并等待。

测试命令

1
2
#仅测试get和set,1000并发,75000次请求,25680字节,以csv格式输出
./redis-benchmark -a mypass -c 1000 -n 75000 -d 25680 -t set,get -q

测试结果

  • GET请求QPS和并发的关系
    GET请求QPS和并发的关系

  • SET请求QPS和并发的关系
    SET请求QPS和并发的关系


测试相关环境

  • 数据大小 25680,这是运营1年多线上项目1服游戏玩家的数据平均大小
  • 一台redis服务器机,一台redis测试机,处于局域网,16核,32G内存。
  • redis使用默认配置