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

Redis ZRANGEBYLEX 명령어 – 사전순 오름차순으로 특정 범위의 요소 조회하기

이 튜토리얼에서는 Redis의 ZRANGEBYLEX 명령어를 사용하여 정렬된 집합(Sorted Set) 값 중 특정 범위에 속하는 모든 요소를 사전순(lexicographical) 오름차순으로 조회하는 방법을 알아봅니다.

ZRANGEBYLEX 명령어란?

ZRANGEBYLEX 명령어는 지정된 키에 저장된 정렬된 집합 값에서 minmax 인수로 주어진 범위(요소의 문자열 표현 기준)에 해당하는 모든 요소를 반환합니다. 이 명령어가 올바르게 동작하려면 집합의 모든 요소가 동일한 점수(score)로 저장되어 있어야 사전순 정렬이 강제됩니다. 반환되는 요소들은 항상 사전순 오름차순으로 정렬됩니다.

구간 지정 문법 이해하기

minmax 인수는 반드시 ( 또는 [로 시작해야 합니다. [는 닫힌 구간(경계값 포함)을 의미하고, (는 열린 구간(경계값 제외)을 의미합니다.

ZRANGEBYLEX set [a [f

위 명령은 a <= element <= f 조건을 만족하는 모든 요소를 반환합니다.

ZRANGEBYLEX set [a (f

반면 위 명령은 a <= element < f 조건을 만족하는 요소들, 즉 f는 제외하고 반환합니다.

무한대 값 사용하기

minmax 인수에는 + 또는 -라는 특수 값을 사용할 수 있습니다. +는 양의 무한대 문자열을, -는 음의 무한대 문자열을 나타냅니다. 따라서 ZRANGEBYLEX set - + 명령을 실행하면 해당 정렬된 집합의 모든 요소가 반환됩니다.

LIMIT 옵션으로 결과 개수 제한하기

선택적인 LIMIT 인수를 사용하면 offset 위치부터 count개의 일치하는 요소만 가져올 수 있습니다. 만약 count 값이 음수라면 offset 위치부터 끝까지의 모든 요소가 반환됩니다.

ZRANGEBYLEX set [a [f LIMIT 1 3
-- set = [a, b, c, d, e, f, g, h] 인 경우

위 명령은 두 번째 일치 요소부터 세 개의 요소를 반환합니다. 즉, 결과는 [b, c, d]입니다.

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

문법

redis host:post> ZRANGEBYLEX <keyname> <min> <max> [LIMIT offset count]

반환값

- (array) reply : 지정된 범위 내 정렬된 집합의 요소 목록
- Empty Set     : 키가 존재하지 않는 경우
- Error         : 키는 존재하지만 값이 정렬된 집합 타입이 아닌 경우

예제

Redis ZRANGEBYLEX 명령어 – 사전순 오름차순으로 특정 범위의 요소 조회하기

참고 자료

  1. ZRANGEBYLEX 공식 문서 (Redis Docs)

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