Redis 性能测试

àì夳堔傛蜴生んèń 2023-01-13 05:39 277阅读 0赞

Redis 性能测试

redis-benchmark 参数

语法: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests>] [-k <boolean>]

  • -h <hostname> 服务主机地址, 默认 127.0.0.1
  • -p <port> 服务端口, 默认 6379
  • -s <socket> Server socket (overrides host and port)
  • -a <password> Password for Redis Auth
  • --user <username> Used to send ACL style ‘AUTH username pass’. Needs-a.
  • -c <clients> 并发连接数, 默认: 50
  • -n <requests> 总的 请求数, 默认值: 10_0000
  • -d <size> SET/GET值的数据大小(字节)(默认值3)
  • --dbnum <db> 选择指定的数据库号(默认为0)
  • --threads <num> 启用多线程模式。
  • --cluster 启用群集模式。
  • --enable-tracking 在开始基准测试之前发送客户端跟踪。
  • -k <boolean> 1=keep alive 0=reconnect (default 1)
  • -r <keyspacelen> 对SET/GET/INCR使用随机键,对SADD使用随机值,ZADD的随机成员和分数。使用此选项,基准将展开字符串 __rand_int__ 在指定范围内具有12位数字的参数中从0到keyspacelen-1。每次执行命令时替换都会更改已执行。默认测试使用它来命中指定范围。
  • -P <numreq> Pipeline 中 redis 指令的个数. Default 1 (no pipeline).
  • -e 如果服务器回复有错误,请在标准输出上显示它们。(每秒显示的错误不超过1个)
  • -q 安静的。只显示每秒请求数
  • --precision 延迟输出中显示的小数位数(默认为0)
  • --csv 以CSV格式输出
  • -l 循环。永远运行测试
  • -t <tests> 只运行逗号分隔的测试列表。测试名称与作为输出生成的名称相同。
  • -I 空闲模式。只需打开N个空闲连接并等待。
  • --version 输出版本并退出。

帮助文档提供的示例:

使用默认配置针对127.0.0.1:6379运行基准测试:

  1. redis-benchmark

对192.168.1.1使用20个并行客户端,总共100k请求:

  1. redis-benchmark -h 192.168.1.1 -p 6379 -n 100000 -c 20

仅使用SET测试,用大约一百万个 key 填充127.0.0.1:6379:

  1. redis-benchmark -t set -n 1000000 -r 100000000

基准127.0.0.1:6379提供了一些产生CSV输出的命令:

  1. redis-benchmark -t ping,set,get -n 100000 --csv

对特定命令行进行基准测试:

  1. redis-benchmark -r 10000 -n 10000 eval 'return redis.call("ping")' 0

用10000个随机元素填充列表:

  1. redis-benchmark -r 10000 -n 10000 lpush mylist __rand_int__

在用户指定的命令行上,将 __rand_int__ 替换为随机整数,该整数的值范围由-r选项选择。

测试

50 个并发测试: redis-benchmark -q


























































































命令 结果
PING_INLINE 176678.45 requests per second, p50=0.143 msec
PING_MBULK 173611.12 requests per second, p50=0.143 msec
SET 176366.86 requests per second, p50=0.143 msec
GET 174520.06 requests per second, p50=0.143 msec
INCR 174216.03 requests per second, p50=0.143 msec
LPUSH 177619.89 requests per second, p50=0.143 msec
RPUSH 176991.16 requests per second, p50=0.143 msec
LPOP 178253.12 requests per second, p50=0.143 msec
RPOP 178571.42 requests per second, p50=0.143 msec
SADD 174825.17 requests per second, p50=0.143 msec
HSET 175131.36 requests per second, p50=0.143 msec
SPOP 174216.03 requests per second, p50=0.143 msec
ZADD 175746.92 requests per second, p50=0.143 msec
ZPOPMIN 176366.86 requests per second, p50=0.143 msec
LPUSH (needed to benchmark LRANGE) 178890.88 requests per second, p50=0.143 msec
LRANGE_100 (first 100 elements) 104058.27 requests per second, p50=0.239 msec
LRANGE_300 (first 300 elements) 42337.00 requests per second, p50=0.583 msec
LRANGE_500 (first 450 elements) 30816.64 requests per second, p50=0.799 msec
LRANGE_600 (first 600 elements) 24527.84 requests per second, p50=1.007 msec
MSET (10 keys) 195312.48 requests per second, p50=0.143 msec

1 万 并发测试 redis-benchmark -q -c 10000


























































































命令 结果
PING_INLINE 132275.14 requests per second, p50=36.415 msec
PING_MBULK 132802.12 requests per second, p50=36.959 msec
SET 131233.59 requests per second, p50=36.095 msec
GET 133155.80 requests per second, p50=36.351 msec
INCR 131926.12 requests per second, p50=36.383 msec
LPUSH 131578.95 requests per second, p50=36.607 msec
RPUSH 133155.80 requests per second, p50=36.735 msec
LPOP 128369.71 requests per second, p50=38.111 msec
RPOP 132100.39 requests per second, p50=36.735 msec
SADD 132100.39 requests per second, p50=36.415 msec
HSET 126422.25 requests per second, p50=38.815 msec
SPOP 122699.39 requests per second, p50=40.415 msec
ZADD 125313.29 requests per second, p50=39.391 msec
ZPOPMIN 118906.06 requests per second, p50=39.263 msec
LPUSH (needed to benchmark LRANGE) 121065.38 requests per second, p50=38.943 msec
LRANGE_100 (first 100 elements) 73800.73 requests per second, p50=65.343 msec
LRANGE_300 (first 300 elements) 30120.48 requests per second, p50=165.503 msec
LRANGE_500 (first 450 elements) 22593.76 requests per second, p50=222.335 msec
LRANGE_600 (first 600 elements) 16501.65 requests per second, p50=303.359 msec
MSET (10 keys) 120627.27 requests per second, p50=51.135 msec

5000个并发 每个请求 1024 个字节 redis-benchmark -q -c 5000 -d 1024


























































































命令 结果
PING_INLINE 126103.41 requests per second, p50=20.623 msec
PING_MBULK 129032.27 requests per second, p50=20.287 msec
SET 119760.48 requests per second, p50=21.583 msec
GET 130548.30 requests per second, p50=19.167 msec
INCR 125470.52 requests per second, p50=20.991 msec
LPUSH 120481.93 requests per second, p50=21.679 msec
RPUSH 121654.50 requests per second, p50=21.535 msec
LPOP 130890.05 requests per second, p50=19.151 msec
RPOP 131233.59 requests per second, p50=19.119 msec
SADD 126742.72 requests per second, p50=20.687 msec
HSET 121802.68 requests per second, p50=21.471 msec
SPOP 128369.71 requests per second, p50=20.431 msec
ZADD 125628.14 requests per second, p50=20.847 msec
ZPOPMIN 128700.12 requests per second, p50=20.399 msec
LPUSH (needed to benchmark LRANGE) 119904.08 requests per second, p50=21.823 msec
LRANGE_100 (first 100 elements) 10784.00 requests per second, p50=107.071 msec
LRANGE_300 (first 300 elements) 3735.25 requests per second, p50=135.935 msec
LRANGE_500 (first 450 elements) 2488.24 requests per second, p50=146.431 msec
LRANGE_600 (first 600 elements) 1842.94 requests per second, p50=167.423 msec 4)
MSET (10 keys) 87950.75 requests per second, p50=27.807 msec

发表评论

表情:
评论列表 (有 0 条评论,277人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Redis性能测试

    我们在Redis的安装目录的bin目录下可以看到 ![在这里插入图片描述][20210521112503947.png] 这里用redis-benchmark来进行测试