성능 벤치마크 - redis mget 대 파이프라인

3114 단어

This post was originally published at distributedstack.



Redis는 일반적인 redis 명령의 성능을 테스트하기 위해 redis-benchmark라는 벤치마킹 도구를 제공합니다. 이 블로그의 벤치마크는 아래 구성에서 실행됩니다.

Model - MacBook Air 2019
Processor - 1.6 GHz Dual-Core Intel Core i5
Memory - 8 GB 2133 MHz LPDDR3
Client - redis-benchmark
Server - localhost:6379


클라이언트와 서버가 모두 동일한 시스템에서 실행 중입니다.
redis-benchmark는 기본적으로 100,000개 이상의 명령에 대한 테스트를 실행합니다. 필요에 따라 숫자를 조정할 수 있습니다.

아직 확인하지 않았다면 redis-benchmark 도구에 대한 자세한 내용을 확인하려면 this 문서를 확인하십시오.

아래 벤치마크는 사용 가능한 모든 테스트에 대해 각 파이프라인에서 1000개의 명령을 실행합니다.

$redis-benchmark -q -P 1000

PING_INLINE: 200803.22 requests per second
PING_BULK: 401606.44 requests per second
SET: 236406.61 requests per second
GET: 277008.31 requests per second
INCR: 229885.06 requests per second
LPUSH: 184501.84 requests per second
RPUSH: 220750.55 requests per second
LPOP: 183150.19 requests per second
RPOP: 223713.64 requests per second
SADD: 224719.11 requests per second
HSET: 172117.05 requests per second
SPOP: 335570.47 requests per second
LPUSH (needed to benchmark LRANGE): 186219.73 requests per second
LRANGE_100 (first 100 elements): 18278.19 requests per second
LRANGE_300 (first 300 elements): 6242.20 requests per second
LRANGE_500 (first 450 elements): 4006.73 requests per second
LRANGE_600 (first 600 elements): 2906.55 requests per second
MSET (10 keys): 29299.74 requests per second


따라서 파이프라인에서 redis get 명령으로 ~277k reqs/sec를 수행할 수 있습니다.

벤치마크 redis mget에 몇 가지 키를 설정해 보겠습니다.

set hash1_key1 "The golden rule of a useful benchmark is not to compare apples to oranges"
set hash2_key2 "The golden rule of a useful benchmark is not to compare apples to oranges"
set hash3_key3 "The golden rule of a useful benchmark is not to compare apples to oranges"
$redis-benchmark mget hash1_key1 hash2_key2 hash3_key3 ... (1000 keys)

  100000 requests completed in 113.54 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.00% <= 1 milliseconds
0.06% <= 2 milliseconds
15.38% <= 44 milliseconds
20.01% <= 45 milliseconds
25.82% <= 46 milliseconds
32.60% <= 47 milliseconds
40.24% <= 48 milliseconds
48.40% <= 49 milliseconds
56.21% <= 50 milliseconds
63.03% <= 51 milliseconds
68.34% <= 52 milliseconds
72.26% <= 53 milliseconds
75.10% <= 54 milliseconds
90.14% <= 78 milliseconds
95.77% <= 83 milliseconds
99.99% <= 234 milliseconds
100.00% <= 235 milliseconds
100.00% <= 236 milliseconds
100.00% <= 237 milliseconds
100.00% <= 241 milliseconds
880.72 requests per second


그래서 우리는 880*1000 = 880k keys/sec를 mget을 통해 가져올 수 있었고, 277k keys/sec는 파이프라인에서 가져올 수 있었습니다.

좋은 웹페이지 즐겨찾기