redis演练(4) redis基准测试

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

redis自带一个很好的基准测试工具,记录一下测试效果,欢迎拍砖。我发现一个奇怪的情况,一些关于开源工具的博客,很少描述当时主机的一些情况,没有主机部分数据的记录,是有些不太完整的。

环境介绍

1.redis服务器(虚拟机,IP:192.168.163.156)

1M内存

20G硬盘

Linux操作系统

2.redis 客户端(虚拟机,IP:192.168.163.146)

1M内存

20G硬盘

3.监控 zabbix (虚拟机,IP:192.168.163.146)

1M内存

20G硬盘

测试了2次

测试记录

1.请求两1w,并发数为4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# /usr/local/redis/bin/redis-benchmark -h  192.168.163.156 -p 6379  -c 4 -n 10000
====== PING_INLINE ======
   10000 requests completed  in  0.46 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.77% <= 1 milliseconds
99.98% <= 2 milliseconds
100.00% <= 2 milliseconds
21598.27 requests per second
 
====== PING_BULK ======
   10000 requests completed  in  0.42 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 0 milliseconds
23696.68 requests per second
 
====== SET ======
   10000 requests completed  in  0.43 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 0 milliseconds
23364.49 requests per second
 
====== GET ======
   10000 requests completed  in  0.44 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.95% <= 1 milliseconds
100.00% <= 1 milliseconds
22935.78 requests per second
 
====== INCR ======
   10000 requests completed  in  0.43 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 0 milliseconds
23201.86 requests per second
 
====== LPUSH ======
   10000 requests completed  in  0.42 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 0 milliseconds
23923.45 requests per second
 
====== RPUSH ======
   10000 requests completed  in  0.43 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 0 milliseconds
23148.15 requests per second
 
====== LPOP ======
   10000 requests completed  in  0.44 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 1 milliseconds
22883.29 requests per second
 
====== RPOP ======
   10000 requests completed  in  0.44 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 0 milliseconds
22883.29 requests per second
 
====== SADD ======
   10000 requests completed  in  0.43 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.97% <= 1 milliseconds
100.00% <= 1 milliseconds
23148.15 requests per second
 
====== SPOP ======
   10000 requests completed  in  0.43 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 0 milliseconds
23474.18 requests per second
 
====== LPUSH (needed to benchmark LRANGE) ======
   10000 requests completed  in  0.42 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 0 milliseconds
23640.66 requests per second
 
====== LRANGE_100 (first 100 elements) ======
   10000 requests completed  in  0.60 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.85% <= 2 milliseconds
99.91% <= 3 milliseconds
100.00% <= 3 milliseconds
16666.67 requests per second
 
====== LRANGE_300 (first 300 elements) ======
   10000 requests completed  in  1.07 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 1 milliseconds
9337.07 requests per second
 
====== LRANGE_500 (first 450 elements) ======
   10000 requests completed  in  1.27 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.88% <= 1 milliseconds
99.97% <= 2 milliseconds
100.00% <= 2 milliseconds
7849.29 requests per second
 
====== LRANGE_600 (first 600 elements) ======
   10000 requests completed  in  1.64 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.72% <= 1 milliseconds
100.00% <= 1 milliseconds
6101.28 requests per second
 
====== MSET (10 keys) ======
   10000 requests completed  in  0.46 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 0 milliseconds
21978.02 requests per second

LRANGE_600 (first 600 elements) 性能最差,6101.28 requests per second


2.请求两10w,并发数为4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
[root@hadoop1 zabbix] # /usr/local/redis/bin/redis-benchmark -h  192.168.163.156 -p 6379  -c 4 -n 100000
====== PING_INLINE ======
   100000 requests completed  in  4.40 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.94% <= 1 milliseconds
99.98% <= 2 milliseconds
99.99% <= 3 milliseconds
100.00% <= 3 milliseconds
22742.78 requests per second
 
====== PING_BULK ======
   100000 requests completed  in  4.29 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 1 milliseconds
100.00% <= 1 milliseconds
23288.31 requests per second
 
====== SET ======
   100000 requests completed  in  4.38 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 0 milliseconds
22857.14 requests per second
 
====== GET ======
   100000 requests completed  in  4.41 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.99% <= 1 milliseconds
99.99% <= 2 milliseconds
100.00% <= 3 milliseconds
100.00% <= 3 milliseconds
22665.46 requests per second
 
====== INCR ======
   100000 requests completed  in  4.67 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.95% <= 1 milliseconds
99.98% <= 2 milliseconds
99.99% <= 3 milliseconds
100.00% <= 3 milliseconds
21422.45 requests per second
 
====== LPUSH ======
   100000 requests completed  in  4.30 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.99% <= 1 milliseconds
100.00% <= 2 milliseconds
100.00% <= 3 milliseconds
100.00% <= 3 milliseconds
23239.60 requests per second
 
====== RPUSH ======
   100000 requests completed  in  4.33 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.99% <= 1 milliseconds
100.00% <= 4 milliseconds
100.00% <= 4 milliseconds
23105.36 requests per second
 
====== LPOP ======
   100000 requests completed  in  4.35 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.99% <= 1 milliseconds
100.00% <= 2 milliseconds
100.00% <= 6 milliseconds
100.00% <= 6 milliseconds
22993.79 requests per second
 
====== RPOP ======
   100000 requests completed  in  4.38 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.99% <= 1 milliseconds
100.00% <= 1 milliseconds
22836.26 requests per second
 
====== SADD ======
   100000 requests completed  in  4.45 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.99% <= 1 milliseconds
99.99% <= 2 milliseconds
100.00% <= 2 milliseconds
22461.81 requests per second
 
====== SPOP ======
   100000 requests completed  in  4.39 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 1 milliseconds
100.00% <= 1 milliseconds
22773.86 requests per second
 
====== LPUSH (needed to benchmark LRANGE) ======
   100000 requests completed  in  4.53 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.99% <= 1 milliseconds
99.99% <= 2 milliseconds
100.00% <= 2 milliseconds
22094.56 requests per second
 
====== LRANGE_100 (first 100 elements) ======
   100000 requests completed  in  5.63 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.98% <= 1 milliseconds
99.99% <= 2 milliseconds
99.99% <= 3 milliseconds
100.00% <= 3 milliseconds
17761.99 requests per second
 
====== LRANGE_300 (first 300 elements) ======
   100000 requests completed  in  11.27 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.48% <= 1 milliseconds
99.69% <= 2 milliseconds
99.87% <= 3 milliseconds
99.98% <= 4 milliseconds
100.00% <= 5 milliseconds
100.00% <= 6 milliseconds
100.00% <= 6 milliseconds
8876.26 requests per second
 
====== LRANGE_500 (first 450 elements) ======
   100000 requests completed  in  13.19 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
98.89% <= 1 milliseconds
99.44% <= 2 milliseconds
99.66% <= 3 milliseconds
99.90% <= 4 milliseconds
99.97% <= 5 milliseconds
100.00% <= 7 milliseconds
100.00% <= 7 milliseconds
7583.23 requests per second
 
====== LRANGE_600 (first 600 elements) ======
   100000 requests completed  in  17.35 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
99.67% <= 1 milliseconds
99.97% <= 2 milliseconds
99.98% <= 3 milliseconds
100.00% <= 4 milliseconds
5764.69 requests per second
 
====== MSET (10 keys) ======
   100000 requests completed  in  4.56 seconds
   4 parallel clients
   3 bytes payload
   keep alive: 1
 
100.00% <= 3 milliseconds
100.00% <= 3 milliseconds
21939.45 requests per second

最差的是LRANGE_600 ,5764.69 requests per second


主机监控

wKiom1fIQE7x9v-gAACKgW5stJk717.png

wKiom1fIQFCRYnj3AACBf2spViA634.png

wKioL1fIQl2TlDVNAABonZfcVTM344.png

另外,CPU load和Memory usage基本上没什么变化。

结论:

  1. redis set,get等类操作,能到到2w吞吐量。

  2. 不同的操作类型,对CPU的影响也不同。

  3. 奇怪,redis对内存需求较稳定。




本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/1845405,如需转载请自行联系原作者
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
相关文章
|
11月前
|
NoSQL 测试技术 Redis
Redis 性能测试
10月更文挑战第21天
217 2
|
11月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
131 3
|
11月前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
140 3
|
11月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
161 3
|
NoSQL Java Linux
Redis6入门到实战------ 六、Redis_Jedis_测试
这篇文章介绍了如何使用Jedis客户端连接Redis,并进行基本的数据类型操作测试,包括字符串、列表、集合、哈希和有序集合的相关API使用示例。
Redis6入门到实战------ 六、Redis_Jedis_测试
|
NoSQL Java Linux
Jedis测试redis。(redis在linux虚拟机中)
该博客文章提供了使用Jedis客户端连接Linux虚拟机中的Redis服务器的步骤,包括Maven依赖配置、测试用例编写以及测试结果的截图。
|
缓存 NoSQL 测试技术
【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能
【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能
117 0
|
缓存 NoSQL 网络协议
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
122 0
|
存储 缓存 NoSQL
Redis性能测试实操记录与分析
Redis性能测试实操记录与分析
195 3
|
NoSQL Redis 数据安全/隐私保护
连接测试服务器redis
连接测试服务器redis
255 1