码迷,mamicode.com
首页 > 其他好文 > 详细

Redis 性能问题的记录

时间:2014-06-27 22:35:33      阅读:586      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   数据   问题   

最近线上使用redis, 查询的情况不甚理想, 这个查询操作是个 lua 脚本, 包含如下操作

开发机 redis, 没有其他干扰, 插入的 zset 有 5000 member 左右, 使用的 redis 客户端是 spring-data, 底层 jedis 实现, 另外自己封装了一层

1. zrange key 0 0 withscores

2. expire key

3. zadd key score member

A. 结果测试10w次发现平均每次拿到数据的时间需要 2800 us (2.8 ms). 也就是说 qps 只能达到 350 左右

B. 于是在本地在此进行测试, 结果是每次调用花费 300 us (0.3 ms), 差了 10 倍左右

而在本地和开发机上直接用 redis benchmark 测试 zadd , 测试命令如下

A. 本机测试

redis-benchmark -q -r 100000 -n 100000 zadd sortedset 10 __rand_int__
zadd sortedset 10 __rand_int__: 45475.22 requests per second

127.0.0.1:6379> zcard sortedset
(integer) 63381

约合 22 us

B. dev 机器测试

redis-benchmark -h l-qproxy.tc.dev.cn6.qunar.com -p 6379 -q -r 100000 -n 100000 zadd sortedset 10 __rand_int__
zadd sortedset 10 __rand_int__: 25227.04 requests per second

remote.dev.com:6379> zcard sortedset
(integer) 63118

约合 40 us

至此又发现两者差距并没有想象中那么大, 现在怀疑是不是 lua 脚本的问题, 把 第一次测试中的lua脚本给替换成简单的 redis zrange key 0 0 命令, 再测试

A. 本地机器 137 us (0.1 ms)

B. dev 机器 2100 ns (2.1 ms)

现在看来, 可能是客户端写的烂的原因了, 在远程连接的时候连接做的不好, 导致效率低下

 

详细的测试数据

 

单位 us

Local Test 10W Zrange

No test
1. 
elapsed : 7296558 count : 99999 avg : 72
Mon elapsed : 7127632 count : 100000 avg : 71

2.
elapsed : 8026594 count : 99999 avg : 80
Mon elapsed : 7843030 count : 100000 avg : 78

3.
elapsed : 8149801 count : 99995 avg : 81
Mon elapsed : 8032342 count : 100000 avg : 80

4.
elapsed : 7961328 count : 99997 avg : 79
Mon elapsed : 7820042 count : 100000 avg : 78

Test on borrow
1.
elapsed : 10842955 count : 99999 avg : 108
Mon elapsed : 10710879 count : 100000 avg : 107

2.
elapsed : 11232565 count : 99998 avg : 112
Mon elapsed : 11130959 count : 100000 avg : 111

3.
elapsed : 11353824 count : 99998 avg : 113
Mon elapsed : 11224904 count : 100000 avg : 112

4.
elapsed : 11005635 count : 99999 avg : 110
Mon elapsed : 10868879 count : 100000 avg : 108


Local Test 10W Lua

No test

1.
elapsed : 25749403 count : 99998 avg : 257
Mon elapsed : 25630396 count : 100000 avg : 256

2.
elapsed : 25682824 count : 99997 avg : 256
Mon elapsed : 25592035 count : 100000 avg : 255

3.
elapsed : 26502975 count : 99997 avg : 265
Mon elapsed : 26373153 count : 100000 avg : 263

4.
elapsed : 50227904 count : 99997 avg : 251
Mon elapsed : 50019605 count : 100000 avg : 250

Test on borrow

1.
elapsed : 30026344 count : 99998 avg : 300
Mon elapsed : 29874080 count : 100000 avg : 298

2.
elapsed : 56238052 count : 99998 avg : 281
Mon elapsed : 56005620 count : 100000 avg : 280

3.
elapsed : 84591577 count : 99998 avg : 281
Mon elapsed : 84299240 count : 100000 avg : 280

4.
elapsed : 112992770 count : 99993 avg : 282
Mon elapsed : 112601651 count : 100000 avg : 281



Dev Redis 10W Zrange

No borrow test

1.
elapsed : 118723620 count : 99993 avg : 1187
Mon elapsed : 118801299 count : 100000 avg : 1188

2.
elapsed : 248431698 count : 99993 avg : 1242
Mon elapsed : 248271355 count : 100000 avg : 1241

3.
elapsed : 360073711 count : 99993 avg : 1200
Mon elapsed : 359465633 count : 100000 avg : 1198

4.
elapsed : 116067058 count : 99996 avg : 1160
Mon elapsed : 115373200 count : 100000 avg : 1153

Test on borrow

1.
elapsed : 217290959 count : 94648 avg : 2295
Mon elapsed : 291451989 count : 100000 avg : 2914

2.
elapsed : 214828993 count : 99996 avg : 2148
Mon elapsed : 506368136 count : 200000 avg : 2531

3.
elapsed : 216495505 count : 100000 avg : 2164
Mon elapsed : 722433027 count : 300000 avg : 2408

4.
elapsed : 216426804 count : 99996 avg : 2164
Mon elapsed : 938483110 count : 400000 avg : 2346

Dev Redis 10W Lua

No borrow test

1.
elapsed : 139567804 count : 99928 avg : 1396
Mon elapsed : 140374850 count : 100000 avg : 1403

2.
elapsed : 137681314 count : 99996 avg : 1376
Mon elapsed : 278360257 count : 200000 avg : 1391

3.
elapsed : 138600259 count : 99995 avg : 1386
Mon elapsed : 416537097 count : 300000 avg : 1388

4.
elapsed : 152433076 count : 99997 avg : 1524
Mon elapsed : 568534621 count : 400000 avg : 1421

test on borrow

1.
elapsed : 275491060 count : 86077 avg : 3200
Mon elapsed : 458422068 count : 100000 avg : 4584

2.
elapsed : 245908497 count : 99989 avg : 2459
Mon elapsed : 704242016 count : 200000 avg : 3521

3.
elapsed : 253036141 count : 99161 avg : 2551
Mon elapsed : 967942699 count : 300000 avg : 3226

4.
elapsed : 251844305 count : 99965 avg : 2519
Mon elapsed : 1219753868 count : 400000 avg : 3049

 

Redis 性能问题的记录,布布扣,bubuko.com

Redis 性能问题的记录

标签:style   blog   color   使用   数据   问题   

原文地址:http://www.cnblogs.com/zemliu/p/3811164.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!