给自建 kv 存储引擎做性能测试不难,使用 redis-benchmark 压测的目的是,测试结果能与 redis-server 的结果做横向对比。
redis-benchmark
redis-benchmark 支持如下指令的 benchmark。其中 GET/SET 指令可用于 kv 存储引擎的压测。
redis-benchmark -q
PING_INLINE: 102669.41 requests per second, p50=0.247 msec
PING_MBULK: 102880.66 requests per second, p50=0.231 msec
SET: 101936.80 requests per second, p50=0.239 msec
GET: 101626.02 requests per second, p50=0.239 msec
INCR: 102249.49 requests per second, p50=0.239 msec
LPUSH: 100603.62 requests per second, p50=0.255 msec
RPUSH: 101626.02 requests per second, p50=0.255 msec
LPOP: 102354.15 requests per second, p50=0.255 msec
RPOP: 102249.49 requests per second, p50=0.255 msec
SADD: 101522.84 requests per second, p50=0.247 msec
HSET: 100603.62 requests per second, p50=0.255 msec
SPOP: 102249.49 requests per second, p50=0.247 msec
ZADD: 102564.10 requests per second, p50=0.255 msec
ZPOPMIN: 103412.62 requests per second, p50=0.247 msec
LPUSH (needed to benchmark LRANGE): 94607.38 requests per second, p50=0.263 msec
LRANGE_100 (first 100 elements): 27964.21 requests per second, p50=0.855 msec
LRANGE_300 (first 300 elements): 11193.19 requests per second, p50=2.135 msec
LRANGE_500 (first 450 elements): 7649.94 requests per second, p50=3.159 msec
LRANGE_600 (first 600 elements): 5884.78 requests per second, p50=4.103 msec
MSET (10 keys): 93283.58 requests per second, p50=0.423 msec
redcon
Redis compatible server framework for Go.