Dawn's Blogs

分享技术 记录成长

0%

Simple-Redis实现 (9) 性能测试

本项目完整地址 simple-redis

性能测试

测试环境

使用的机器为 MacBook Pro 13,处理器 Intel i5 四核,内存 8GB。

测试结果

在同样的测试环境上,使用 redis-benchmark分别对 Redis 和 Simple-Redis 进行性能测试。

发送一万条请求,对 set,get,incr,lpush,rpush,lpop,rpop,sadd,hset,spop,zadd,lrange 命令进行测试。

Redis

Redis 测试结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
zhaohan08@MacBook-Pro redis % redis-benchmark -t set,get,incr,lpush,rpush,lpop,rpop,sadd,hset,spop,zadd,lrange -n 10000 -q
SET: 93457.95 requests per second, p50=0.263 msec
GET: 96153.84 requests per second, p50=0.263 msec
INCR: 96153.84 requests per second, p50=0.263 msec
LPUSH: 100000.00 requests per second, p50=0.263 msec
RPUSH: 97087.38 requests per second, p50=0.263 msec
LPOP: 98039.22 requests per second, p50=0.263 msec
RPOP: 93457.95 requests per second, p50=0.263 msec
SADD: 93457.95 requests per second, p50=0.263 msec
HSET: 87719.30 requests per second, p50=0.271 msec
SPOP: 95238.10 requests per second, p50=0.263 msec
ZADD: 100000.00 requests per second, p50=0.263 msec
LPUSH (needed to benchmark LRANGE): 99009.90 requests per second, p50=0.263 msec
LRANGE_100 (first 100 elements): 38167.94 requests per second, p50=0.647 msec
LRANGE_300 (first 300 elements): 16366.61 requests per second, p50=1.503 msec
LRANGE_500 (first 500 elements): 10989.01 requests per second, p50=2.223 msec
LRANGE_600 (first 600 elements): 9363.30 requests per second, p50=2.639 msec

Simple-Redis

Simple-Redis 测试结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
zhaohan08@MacBook-Pro redis % redis-benchmark -t set,get,incr,lpush,rpush,lpop,rpop,sadd,hset,spop,zadd,lrange -n 10000 -q
WARNING: Could not fetch server CONFIG
SET: 68965.52 requests per second, p50=0.367 msec
GET: 62111.80 requests per second, p50=0.399 msec
INCR: 49751.24 requests per second, p50=0.487 msec
LPUSH: 56497.18 requests per second, p50=0.447 msec
RPUSH: 49504.95 requests per second, p50=0.503 msec
LPOP: 68965.52 requests per second, p50=0.375 msec
RPOP: 68493.15 requests per second, p50=0.375 msec
SADD: 52631.58 requests per second, p50=0.495 msec
HSET: 68027.21 requests per second, p50=0.375 msec
SPOP: 68027.21 requests per second, p50=0.383 msec
ZADD: 49751.24 requests per second, p50=0.503 msec
LPUSH (needed to benchmark LRANGE): 56818.18 requests per second, p50=0.463 msec
LRANGE_100 (first 100 elements): 25773.20 requests per second, p50=0.895 msec
LRANGE_300 (first 300 elements): 13586.96 requests per second, p50=1.775 msec
LRANGE_500 (first 500 elements): 9041.59 requests per second, p50=2.607 msec
LRANGE_600 (first 600 elements): 7704.16 requests per second, p50=3.015 msec

结论

在单机时,可以得出结论,Simple-Redis 和 Redis 是有性能差距的,具体数据如下:

  • string 类型:Simple-Redis 的性能大约是 Redis 的 70%。
  • list 类型:Simple-Redis 的性能大约是 Redis 的 50%。
  • hash 类型:Simple-Redis 大约是 Redis 的 75%。
  • set 类型:Simple-Redis 的性能大约是 Redis 的 55%。
  • zset 类型:Simple-Redis 的性能大约是 Redis 的 50%。