이 튜토리얼에서는 Redis의 ZLEXCOUNT 명령어를 사용하여 정렬된 집합(Sorted Set)에서 특정 범위(사전순 기준)에 속한 요소의 개수를 조회하는 방법을 알아보겠습니다.
ZLEXCOUNT 명령어란?
ZLEXCOUNT 명령어는 정렬된 집합 값 중에서 요소의 문자열 표현이 min과 max 인자로 지정된 범위 안에 있는 요소들의 개수를 반환합니다. 이때 사전순(lexicographical) 정렬을 강제하기 위해 집합 내 모든 요소는 동일한 점수(score)로 삽입되어 있어야 합니다.
범위 지정 방식
min과 max 인자는 반드시 ( 또는 [로 시작해야 하며, 각 기호의 의미는 다음과 같습니다.
- [ : 닫힌 구간(closed interval), 즉 해당 값을 포함(inclusive)
- ( : 열린 구간(open interval), 즉 해당 값을 제외(exclusive)
예를 들어 다음 명령어는 a <= 요소 <= f 조건을 만족하는 요소의 개수를 반환합니다.
ZLEXCOUNT set [a [f
반면 아래 명령어는 a <= 요소 < f 조건, 즉 f를 제외한 요소의 개수를 반환합니다.
ZLEXCOUNT set [a (f
특수 값: 무한대 표현
min과 max 인자에는 특수 값인 +(양의 무한대 문자열)와 -(음의 무한대 문자열)를 사용할 수 있습니다. 예를 들어 다음 명령어는 전체 정렬된 집합의 크기를 반환합니다.
ZLEXCOUNT set - +
주의 사항
키가 존재하지만 해당 키에 저장된 값이 정렬된 집합(Sorted Set) 타입이 아닌 경우 에러가 반환됩니다.
문법
redis host:port> ZLEXCOUNT <keyname> <min> <max>
반환값
- 지정된 범위 내 요소의 개수를 나타내는 정수(integer)
- 키가 존재하지만 저장된 값이 정렬된 집합이 아닌 경우 에러(Error)
예제

참고 자료
- Redis 공식 문서 – ZLEXCOUNT Command Docs
지금까지 Redis ZLEXCOUNT 명령어를 활용해 정렬된 집합에서 특정 사전순 범위에 포함된 요소의 개수를 구하는 방법을 살펴보았습니다. 도움이 되셨다면 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요!