이 튜토리얼에서는 Redis 데이터 저장소의 특정 키에 저장된 정렬된 집합(Sorted Set) 값에서 요소의 순위(rank)를 조회하는 방법을 알아봅니다. 이를 위해 Redis에서 제공하는 ZRANK와 ZREVRANK 두 가지 명령어를 사용합니다.
ZRANK 명령어란?
ZRANK는 지정된 키에 저장된 정렬된 집합 값에서 해당 요소의 순위를 반환하는 명령어입니다. 정렬된 집합의 요소들은 점수(score)를 기준으로 오름차순으로 정렬되며, 점수가 같은 경우에는 사전순(lexicographical order)으로 정렬됩니다.
순위는 0부터 시작합니다(zero-based). 즉, 가장 낮은 점수를 가진 멤버의 순위가 0입니다.
- 요소가 정렬된 집합에 존재하지 않거나 키 자체가 존재하지 않으면 (nil)이 반환됩니다.
- 키는 존재하지만 저장된 값이 정렬된 집합 타입이 아니면 오류(error)가 반환됩니다.
문법(Syntax)
redis host:port> ZRANK <keyname> <element>
반환값(Output)
- (integer): 정렬된 집합에 저장된 요소의 순위 - (nil): 요소가 집합에 없거나 키가 존재하지 않는 경우 - Error: 키는 존재하지만 값이 정렬된 집합 타입이 아닌 경우
예제(Example)

ZREVRANK 명령어란?
ZREVRANK 역시 지정된 키에 저장된 정렬된 집합 값에서 요소의 순위를 반환하지만, 요소들이 점수를 기준으로 내림차순으로 정렬된다는 점이 다릅니다. 점수가 같은 경우에는 내림차순 사전순으로 정렬됩니다.
순위는 마찬가지로 0부터 시작하며, 이 경우에는 가장 높은 점수를 가진 멤버의 순위가 0입니다. 리더보드처럼 상위 랭킹을 빠르게 확인해야 하는 상황에서 특히 유용합니다.
- 요소가 정렬된 집합에 존재하지 않거나 키가 존재하지 않으면 (nil)이 반환됩니다.
- 키는 존재하지만 저장된 값이 정렬된 집합 타입이 아니면 오류(error)가 반환됩니다.
문법(Syntax)
redis host:port> ZREVRANK <keyname> <element>
반환값(Output)
- (integer): 정렬된 집합에 저장된 요소의 순위(내림차순 기준) - (nil): 요소가 집합에 없거나 키가 존재하지 않는 경우 - Error: 키는 존재하지만 값이 정렬된 집합 타입이 아닌 경우
예제(Example)

참고 자료(References)
- ZRANK 공식 문서(ZRANK Command Docs)
- ZREVRANK 공식 문서(ZREVRANK Command Docs)
마무리
지금까지 Redis 데이터 저장소에 저장된 정렬된 집합 값에서 요소의 순위를 조회하는 방법을 살펴보았습니다. 오름차순 순위가 필요하면 ZRANK, 내림차순 순위가 필요하면 ZREVRANK를 사용하면 됩니다. 이 글이 도움이 되었다면 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요!