Redis-benchmark使用总结

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis-benchmark使用总结

Redis-benchmark为Redis性能测试工具。

指令说明:

Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]
-h <hostname>      Server hostname (default 127.0.0.1)
-p <port>          Server port (default 6379)
-s <socket>        Server socket (overrides host and port)
-c <clients>       Number of parallel connections (default 50)
-n <requests>      Total number of requests (default 10000)
-d <size>          Data size of SET/GET value in bytes (default 2)
-k <boolean>       1=keep alive 0=reconnect (default 1)
-r <keyspacelen>   Use random keys for SET/GET/INCR, random values for SADD
  Using this option the benchmark will get/set keys
  in the form mykey_rand:000000012456 instead of constant
  keys, the <keyspacelen> argument determines the max
  number of values for the random number. For instance
  if set to 10 only rand:000000000000 - rand:000000000009
  range will be allowed.
-P <numreq>        Pipeline <numreq> requests. Default 1 (no pipeline).
-q                 Quiet. Just show query/sec values 只显示每秒钟能处理多少请求数结果
--csv              Output in CSV format
-l                 Loop. Run the tests forever 永久测试
-t <tests>         Only run the comma separated list of tests. The test
                    names are the same as the ones produced as output.
-I                 Idle mode. Just open N idle connections and wait.

实例:

redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100  

SET/GET 100 bytes 检测host为127.0.0.1 端口为6379的redis服务器性能



redis-benchmark -h 127.0.0.1 -p 6379 -c 5000 -n 100000

5000个并发连接,100000个请求,检测host为127.0.0.1 端口为6379的redis服务器性能





benchmark工具测试信息:

测试命令:

redis-benchmark -n 100000 -c 60

向redis服务器发送100000个请求,每个请求附带60个并发客户端

结果(部分):

====== SET ======

对集合写入测试

 100000 requests completed in 2.38 seconds

100000个请求在2.38秒内完成

 60 parallel clients

每次请求有60个并发客户端

 3 bytes payload

每次写入3个字节的数据

 keep alive: 1

保持一个连接,一台服务器来处理这些请求



93.06% <= 15 milliseconds

99.96% <= 31 milliseconds

99.98% <= 46 milliseconds

99.99% <= 62 milliseconds

100.00% <= 62 milliseconds

所有请求在62毫秒内完成

42105.26 requests per second

每秒处理42105.26次请求

单连接:

[root@local-idc-tcaplus-docker25 src]# redis-benchmark -h 10.10.40.26 -p 6379 -c 1 -n 10000 -q
PING_INLINE: 6544.50 requests per second, p50=0.135 msec                  
PING_MBULK: 5112.47 requests per second, p50=0.151 msec                  
SET: 6574.62 requests per second, p50=0.143 msec                  
GET: 4967.71 requests per second, p50=0.159 msec                  
INCR: 5133.47 requests per second, p50=0.151 msec                  
LPUSH: 5543.24 requests per second, p50=0.151 msec                  
RPUSH: 6765.90 requests per second, p50=0.135 msec                  
LPOP: 5249.34 requests per second, p50=0.159 msec                  
RPOP: 5780.35 requests per second, p50=0.151 msec                  
SADD: 5899.70 requests per second, p50=0.151 msec                  
HSET: 5608.52 requests per second, p50=0.151 msec                  
SPOP: 5434.78 requests per second, p50=0.151 msec                  
ZADD: 5030.18 requests per second, p50=0.167 msec                  
ZPOPMIN: 5099.44 requests per second, p50=0.151 msec                  
LPUSH (needed to benchmark LRANGE): 5452.56 requests per second, p50=0.143 msec                  
LRANGE_100 (first 100 elements): 4269.85 requests per second, p50=0.183 msec                  
LRANGE_300 (first 300 elements): 3827.02 requests per second, p50=0.207 msec                  
LRANGE_500 (first 500 elements): 2787.84 requests per second, p50=0.255 msec                  
LRANGE_600 (first 600 elements): 2723.31 requests per second, p50=0.271 msec                  
MSET (10 keys): 4812.32 requests per second, p50=0.159 msec

多连接 50:

[root@local-idc-tcaplus-docker25 src]# redis-benchmark -h 10.10.40.26 -p 6379 -c 50 -n 10000 -q
PING_INLINE: 57471.27 requests per second, p50=0.551 msec          
PING_MBULK: 57142.86 requests per second, p50=0.543 msec                   
SET: 62500.00 requests per second, p50=0.527 msec                   
GET: 62893.08 requests per second, p50=0.527 msec
INCR: 60975.61 requests per second, p50=0.527 msec                   
LPUSH: 59171.60 requests per second, p50=0.543 msec                   
RPUSH: 60240.96 requests per second, p50=0.527 msec
LPOP: 64516.13 requests per second, p50=0.511 msec                   
RPOP: 70921.98 requests per second, p50=0.471 msec
SADD: 74626.87 requests per second, p50=0.455 msec                  
HSET: 73529.41 requests per second, p50=0.463 msec
SPOP: 71428.57 requests per second, p50=0.463 msec          
ZADD: 70422.53 requests per second, p50=0.479 msec                   
ZPOPMIN: 70921.98 requests per second, p50=0.463 msec
LPUSH (needed to benchmark LRANGE): 72463.77 requests per second, p50=0.471 msec                   
LRANGE_100 (first 100 elements): 40816.32 requests per second, p50=0.815 msec                   
LRANGE_300 (first 300 elements): 16611.29 requests per second, p50=1.703 msec                   
LRANGE_500 (first 500 elements): 11037.53 requests per second, p50=2.407 msec                   
LRANGE_600 (first 600 elements): 9587.73 requests per second, p50=2.703 msec                    
MSET (10 keys): 58479.53 requests per second, p50=0.567 msec
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
7月前
|
存储 NoSQL 测试技术
【Redis】redis为什么快
【Redis】redis为什么快
|
6月前
|
消息中间件 缓存 NoSQL
【Redis】 初识 Redis
【Redis】 初识 Redis
|
运维 NoSQL Shell
redis(2)
Redis Cluster 是 redis的分布式解决方案,在3.0版本正式推出 当遇到单机、内存、并发、流量等瓶颈时,可以采用Cluster架构方案达到负载均衡目的。 Redis Cluster之前的分布式方案有两种: 1)客户端分区方案: 优点分区逻辑可控,缺点是需要自己处理数据路由,高可用和故障转移等。 2)代理方案: 优点是简化客户端分布式逻辑和升级维护便利,缺点加重架构部署和性能消耗。 官方提供的 Redis Cluster集群方案,很好的解决了集群方面的问题
|
7月前
|
存储 SQL NoSQL
[Redis]——初识Redis
[Redis]——初识Redis
|
7月前
|
NoSQL 网络协议 安全
Redis系列-1.Redis浅谈
Redis系列-1.Redis浅谈
57 0
|
存储 JSON NoSQL
redis中的value
需要注意的是,redis中的value是以二进制形式存储的,因此在存储和读取数据时需要进行序列化和反序列化操作。常用的序列化方式包括JSON、Protobuf、Msgpack等。示例代码如下
76 0
|
NoSQL Redis
06Redis - Redis的使用
06Redis - Redis的使用
64 0
|
存储 NoSQL Linux
Redis之Redis为什么这么快解读
Redis之Redis为什么这么快解读
|
缓存 NoSQL 关系型数据库
redis-1
redis-1
45 0
|
消息中间件 NoSQL 测试技术
Redis2
Redis2
129 0