[Redis] 레디스 데이터 타입 - Sorted Set

728x90
반응형

 

 

Sorted Set

  • 연관된 점수로 정렬된 고유한 문자열의 모음이다.
  • Set과 동일하게 Key 하나에 중복되지 않는 여러 맴버를 저장하지만, 각각의 맴버는 Score 에 연결된다.
  • 모든 데이터는 Score 값으로 정렬되며, Score가 같다면 문자열의 사전 순서로 정렬된다.
  • 정렬이 필요한 곳에 사용되며, 주로 Rank를 생성할때 이용한다.
  • Score는 double 이기 때문에 부동 소수점에 주의 해야 한다.

 

 

 

기본 명령어

--이미 value 가 있다면 score 값만 변경한다.
ZADD <key> <score> <value>


-- 해당 index 범위의 모든 value를 반환한다. 0, -1 일경우 전체
ZRANGE <key> <startindex> <endindex>


-- 해당 Score 범위의 모든 값을 반환, endsocre가 +inf 일 경우 끝까지
ZRANGEBYSCORE <key> <startscore> <endscore>


-- 오름차순 기준의 맴버 순위 제공 (index 0 부터)
ZRANK <key> <member>


-- 내림차순 기준의 맴버 순위 제공 (index 0 부터)
ZREVRANK <key> <member>

 

 

 

 

성능

대부분의 정렬된 집합 연산은 O(log(n))이며 여기서 n 은 구성원 수입니다.

ZRANGE큰 반환 값(예: 수만 이상)으로 명령을 실행할 때는 주의를 기울여야 합니다. 이 명령의 시간 복잡도는 O(log(n) + m)입니다. 여기서 m 은 반환된 결과의 수입니다.

 

 

 

 

참조

https://redis.io/docs/data-types/sorted-sets/

https://redis.io/commands/?group=sorted-set 

 

 

 

 

END


 

 

 

 

728x90