zrange
ZRANGE
Redis 開発者教育の申込
|
Redis 定期点検/技術サポートRedis Technical Support |
Redis エンタープライズサーバーRedis Enterprise Server |
|---|
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 2番目から4番目まで照会 |
| 結果> |
1) 2 -> ソウル 2) 3 -> プサン 3) 4 -> インチョン |
| コマンド> | zrange myzip 3 -1 withscores 4番目から末尾まで照会 |
| 結果> |
3) 4 -> インチョン 4) 5 -> テグ 5) 6 -> クァンジュ |
index に負数を使用可能
負数を使うと最後の member が -1、その次が -2 のように指定されます。
start <= stop のとき照会されます。stop に -1 を使うときは例外です。
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 オプションを使います。
この機能は version 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" |
スコア(score)を照会条件にするには BYSCORE
スコア(score)を照会条件にするには BYSCORE オプションを使います。
このオプションは非包含 '(' を使えます。
この機能は version 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 がすべて同じでなければ望む結果を得られません。
この機能は version 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 を使った場合のみ使用できます。
この機能は version 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 オプションは version 6.2 から使用できます。
- 時間計算量は O(log(N)+M) です。 N は集合の member 個数で、 M は返す member の個数です。
| SQL Select | Redis Enterprise 7.3.0 以上なら SELECT を使ってみてください。 |
| 関連コマンド | ZREVRANGE, LRANGE, |
| Clients for Java | Jedis, Lettuce, Redisson | Clients for C | Hiredis |
| << ZINCRBY | ZRANGE | ZLS >> |
|---|
