keys와 scan 풀탐색 시간 비교

2018. 8. 2. 14:46Programming/Redis

Redis는 Single Thread 구조이기 때문에 keys 명령을 날리게 되면 redis가 lock이 걸림

그렇기 때문에 이를 보완하기 위해서 scan 명령어가 생겼는데

scan 명령어는 범위를 지정하여 탐색 할 수 있도록 지원되어 있음


keys 풀탐색 

명령어 : keys *

대상 : 633538 row 

탐색 시간 : 42.28s


scan 풀탐색

명령어 : scan 0 count 1000000

대상 : 633538 row 

탐색 시간 : 46.32s


keys 부분탐색

명령어 : keys *l*

탐색 시간 : 2.28s


scan 부분 탐색

명령어 : scan 0 match *l* count 1000000 

탐색 시간 : 3.26s


풀탐색 속도만으로 가정해 본다면 keys가 더 빠른 속도로 탐색하므로 keys대신 scan으로 풀탐색을 할 필요가 없음

부분 탐색에서 thread가 lock이 안걸리게 하는 용도로 사용 하는 것이 좋을듯 해보임

'Programming > Redis' 카테고리의 다른 글

[Redis] Hiredis vs cpp_redis  (0) 2019.04.29
레디스 개발자 antirez 블로그 주소  (0) 2018.08.27
c++ hiredis rediscommand  (0) 2018.07.18