sort
SORT
Redis 開発者教育の申込
|
Redis 定期点検/技術サポートRedis Technical Support |
Redis エンタープライズサーバーRedis Enterprise Server |
|---|
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 にしました。
構文
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)) です。
| 関連コマンド | SCAN |
| Clients for Java | Jedis, Lettuce, Redisson | Clients for C | Hiredis |
| << SCAN | SORT | SORT hash >> |
|---|
Email
返事がかかってなれば、メールでお知らせします。
