sort
SORT
Data를 sort하여 조회
간단한 사용법은 sort key 이다.
여기서 key로 쓸수있는 data type은 list, set, sorted set이다.
data(member)를 sort해서 볼 수 없었던 set에 data를 넣어서 sort해 보자.
Example
명령> sadd myurl Google.com Facebook.com Youtube.com Yahoo.com Baidu.com
결과> 5
명령> sort myurl alpha sort할 대상이 숫자가 아닐경우 alpha 사용
결과>
0) Baidu.com
1) Facebook.com
2) Google.com
3) Yahoo.com
4) Youtube.com
명령> sort myurl alpha desc 역순으로 sort할 경우 desc 사용
결과>
0) Youtube.com
1) Yahoo.com
2) Google.com
3) Facebook.com
4) Baidu.com
limit 옵션 사용
limit offset count
Example
명령> sort myurl alpha limit 0 3
결과>
0) Baidu.com
1) Facebook.com
2) Google.com
명령> sort myurl alpha limit 3 10
결과>
0) Yahoo.com
1) Youtube.com
get 옵션 사용
다른 key의 value를 조회할 경우 get 사용
예를 들어, myurl 의 Google.com 과 rank-Google.com 을 비교하여 rank-Google.com의 value를 조회할 경우 get rank-* 를 사용한다.
관계형 데이터베이스의 join으로 생각하면 된다.
준비 data로 web site 순위를 입력
Example
명령> mset rank-Google.com 1 rank-Facebook.com 2 rank-Youtube.com 3 rank-Yahoo.com 4 rank-Baidu.com 5
결과> OK
명령> sort myurl get rank-* alpha
결과>
0) 5
1) 2
2) 1
3) 4
4) 3
애니메이션 보기
get # 옵션 사용
sort하는 자신을 보여줄 경우에는 get의 특별한 용법 get # 을 사용한다.
Example
명령> sort myurl get # get rank-* alpha
결과>
0) Baidu.com
1) 5
2) Facebook.com
3) 2
4) Google.com
5) 1
6) Yahoo.com
7) 4
8) Youtube.com
9) 3
애니메이션 보기
by 옵션 사용
지정한 key의 value로 sort한다.
rank-* 의 value로 sort 한다.
Example
명령> sort myurl by rank-* get # get rank-* alpha
결과>
0) Google.com
1) 1
2) Facebook.com
3) 2
4) Youtube.com
5) 3
6) Yahoo.com
7) 4
8) Baidu.com
9) 5
애니메이션 보기
2개 이상의 field 조회
get을 이용해서 2개 이상의 field를 조회해 보자.
준비 data로 Daily Pageviews per Visitor를 입력하자
Example
명령> mset pv-Google.com 19.60 pv-Facebook.com 11.62 pv-Youtube.com 4.58
pv-Yahoo.com 7.44 pv-Baidu.com 8.87
결과> OK
명령> sort myurl by pv-* get # get pv-* get rank-* desc
결과>
0) Google.com
1) 19.60
2) 1
3) Facebook.com
4) 11.62
5) 2
6) Baidu.com
7) 8.87
8) 5
9) Yahoo.com
10) 7.44
11) 4
12) Youtube.com
13) 4.58
14) 3
위 Example를 Hash, List, Zset을 이용해서 Example를 만들었다.
Hash를 이용한 Example
List를 이용한 Example
Zset를 이용한 Example
명령문
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]
- 이 명령은 version 1.0.0 부터 사용할 수 있다.
- 논리적 처리 소요시간은 O(N+M*log(M))이다.
Clients for C
Hiredis