Computer >> 컴퓨터 >  >> 프로그래밍 >> Redis

Redis ZRANGE 명령어 – 점수 오름차순 기준으로 특정 순위 범위의 요소 가져오기

이 튜토리얼에서는 Redis ZRANGE 명령어를 사용하여, 정렬된 집합(sorted set) 값에서 특정 순위 범위에 해당하는 하나 이상의 요소를 점수(score) 오름차순으로 조회하는 방법을 알아보겠습니다.

ZRANGE 명령어란?

ZRANGE 명령어는 지정된 키에 저장된 정렬된 집합 값에서, 지정한 범위에 속하는 하나 이상의 요소를 반환합니다. 정렬된 집합의 요소는 점수를 기준으로 오름차순으로 정렬되며, 점수가 같은 요소들은 사전순(lexicographical order)으로 정렬됩니다.

범위는 start(시작)와 end(끝) 오프셋으로 정의되며, 두 오프셋 모두 포함(inclusive)됩니다. 이 오프셋은 0부터 시작하는 인덱스로, 0은 첫 번째 요소, 1은 두 번째 요소를 의미합니다. 음수도 사용할 수 있는데, 이 경우 집합의 끝에서부터 역산합니다. 예를 들어 -1은 마지막 요소, -2는 뒤에서 두 번째 요소를 의미합니다.

범위를 벗어난 오프셋 처리 방식

  1. (start > end) 또는 (start > 정렬된 집합의 크기)인 경우 :- 빈 리스트를 반환합니다.
  2. (end > 정렬된 집합의 크기)인 경우 :- end 오프셋이 정렬된 집합 마지막 요소의 인덱스로 자동 조정됩니다.

키가 존재하지 않으면 빈 집합(empty set)을 반환하며, 키는 존재하지만 저장된 값이 정렬된 집합 데이터 타입이 아닌 경우에는 에러를 반환합니다.

또한 선택적(optional) 인자인 WITHSCORES를 명령어에 함께 전달하면, 요소와 함께 각 요소의 점수도 함께 받을 수 있습니다. 이 경우 반환되는 배열은 value1, score1, .... valueN, scoreN 형태가 되며, 기존의 value1, ...., valueN 형태 대신 점수 정보가 포함됩니다.

문법(Syntax)

Redis ZRANGE 명령어의 기본 문법은 다음과 같습니다.

redis host:port> ZRANGE <keyname> <start> <stop> [ WITHSCORES ]

반환값(Output)

- (array) reply : 지정된 범위 내 정렬된 집합의 요소들을 배열로 반환
- Empty Set : 키가 존재하지 않는 경우 빈 집합 반환
- Error : 키는 존재하지만 저장된 값이 정렬된 집합 타입이 아닌 경우 에러 반환

예제(Example)

아래 이미지는 ZRANGE 명령어를 실제로 실행한 예시입니다.

Redis ZRANGE 명령어 – 점수 오름차순 기준으로 특정 순위 범위의 요소 가져오기

참고 자료(References)

  1. ZRANGE 공식 문서(Redis 공식 Documentation)

지금까지 Redis ZRANGE 명령어를 사용하여 정렬된 집합에서 특정 순위 범위에 해당하는 요소들을 점수 오름차순으로 조회하는 방법을 살펴보았습니다. 이 글이 도움이 되었다면 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요!