zrange
ZRANGE
member list를 조회(적은것 부터)
사용법은 zrange key start stop 이다.
start stop은 index이다. lrange에서 사용하는 index와 같은 개념이다.
score가 적은 것 부터 조회된다. score가 같으면 member로 비교한다.
전체를 조회할 때는 0 -1을 사용한다.
Example
명령> zadd myzip 2 "서울" 3 "부산" 5 "대구" 4 "인천" 6 "광주" 1 "경기"
결과> 6
명령> zrange myzip 0 -1 score로 sort되어 보여진다
결과>
0) 경기
1) 서울
2) 부산
3) 인천
4) 대구
5) 광주
명령> zrange myzip 0 -1 withscores withscores 옵션을 사용하면 score가 표시된다
결과>
0) 1 -> 경기
1) 2 -> 서울
2) 3 -> 부산
3) 4 -> 인천
4) 5 -> 대구
5) 6 -> 광주
애니메이션 보기
일부분만 조회할 때
index(start, stop)으로 범위를 준다.
Example
명령> zrange myzip 1 3 withscores
두번째부터 네번째까지 조회
결과>
1) 2 -> 서울
2) 3 -> 부산
3) 4 -> 인천
명령> zrange myzip 3 -1 withscores
네번째부터 끝까지 조회
결과>
3) 4 -> 인천
4) 5 -> 대구
5) 6 -> 광주
index에 음수 사용 가능
음수를 사용하면 맨 마지막 member가 -1, 다음 member가 -2 이렇게 지정된다.
start <= stop 일때 조회된다. stop에 -1 사용일때는 예외임.
Example
명령> zrange myzip -3 -1 withscores
결과>
-3) 4 -> 인천
-2) 5 -> 대구
-1) 6 -> 광주
애니메이션 보기
score가 같으면 member로 sort 됨
Example
명령> del myzip
결과> 1
명령> zadd myzip 10 "충청" 10 "전라"
10 "서울" 10 "경기" 10 "부산"
결과> 5
명령> zrange myzip 0 -1 withscores
결과>
0) 10 -> 경기
1) 10 -> 부산
2) 10 -> 서울
3) 10 -> 전라
4) 10 -> 충청
역순으로 조회하려면 REV 옵션 사용
역순으로 조회하려면 REV 옵션 사용합니다.
이 기능은 버전 6.2부터 사용할 수 있습니다.
이 옵션은 ZREVRANGE 명령과 같은 기능을 합니다.
이 옵션은 다음에 설명할 BYSCORE, BYLEX와 같이 사용할 수 없습니다.
Example
명령> zadd mycity 10 Seoul 20 Busan 30 Daegu 40 Incheon 50 Gwangju 60 Gyeonggi
결과> 6
명령> zrange mycity 0 -1
결과>
1) "Seoul"
2) "Busan"
3) "Daegu"
4) "Incheon"
5) "Gwangju"
6) "Gyeonggi"
명령> zrange mycity 0 -1 rev
결과>
1) "Gyeonggi"
2) "Gwangju"
3) "Incheon"
4) "Daegu"
5) "Busan"
6) "Seoul"
스코어를 조회 조건으로 사용하려면 BYSCORE
스코어를 조회 조건으로 사용하려면 BYSCORE 옵션을 사용합니다.
이 옵션은 미포함'('을 사용할 수 있습니다.
이 기능은 버전 6.2부터 사용할 수 있습니다.
이 옵션은 ZRANGEBYSCORE 명령과 같은 기능을 합니다.
Example
명령> zrange mycity 10 50 byscore
결과>
1) "Seoul"
2) "Busan"
3) "Daegu"
4) "Incheon"
5) "Gwangju"
명령> zrange mycity (10 (50 byscore
결과>
1) "Busan"
2) "Daegu"
3) "Incheon"
값(멤버)을 조회 조건으로 사용하려면 BYLEX
값(멤버)을 조회 조건으로 사용하려면 BYLEX 옵션을 사용합니다.
이 옵션은 반드시 포함'[' 또는 미포함'('을 사용해야 합니다.
모두 조회하려면 - +를 사용합니다.
이 옵션은 score가 모두 같아야 원하는 결과를 얻을 수 있습니다.
이 기능은 버전 6.2부터 사용할 수 있습니다.
이 옵션은 ZRANGEBYLEX 명령과 같은 기능을 합니다.
Example
명령>
zadd mycity2 0 Seoul 0 Busan 0 Daegu 0 Incheon 0 Gwangju 60 Gyeonggi
결과> 6
명령> zrange mycity2 [Busan [Incheon bylex
결과>
1) "Busan"
2) "Daegu"
3) "Gwangju"
4) "Gyeonggi"
5) "Incheon"
명령> zrange mycity2 (Busan (Incheon bylex
결과>
1) "Daegu"
2) "Gwangju"
3) "Gyeonggi"
개수를 제한하려면 LIMIT 옵션 사용
개수를 제한하려면 LIMIT offset count 옵션 사용합니다.
이 옵션은 BYSCORE, BYLEX를 사용했을 경우만 사용할 수 있습니다.
이 기능은 버전 6.2부터 사용할 수 있습니다.
Example
명령> zrange mycity 10 50 byscore limit 0 3
결과>
1) "Seoul"
2) "Busan"
3) "Daegu"
명령> zrange mycity2 [Busan [Incheon bylex limit 1 3
결과>
1) "Daegu"
2) "Gwangju"
3) "Gyeonggi"
명령문
ZRANGE key start stop [REV] [[BYSCORE|BYLEX] [LIMIT offset count]] [withscores]
- 이 명령은 version 1.2.0 부터 사용할 수 있습니다.
- REV, BYSCORE|BYLEX, LIMIT offset count 옵션은 버전 6.2부터 사용할 수 있습니다.
- 논리적 처리 소요시간은 O(log(N)+M)이다. N은 집합의 member 개수이고, M은 리턴하는 member의 개수입니다.
Clients for C
Hiredis