Redis Zrangebylex コマンド
Redis Zrangebylex コマンドは、ソート済みセット(sorted set)内のメンバーを辞書順(lexicographical order)で指定した範囲内から取得するために使用されます。このコマンドは、メンバーが文字列であるソート済みセットを主に対象としています。
構文
redis Zrange コマンドの基本的な構文は次のとおりです:
ZRANGEBYLEX key min max [LIMIT offset count]
key:キー名。操作対象のソート済みセットを指定します。minとmax:辞書順範囲の境界値です。これらの2つの値は負の無限大(-)または正の無限大(+)、または具体的な文字列値です。文字列値はソート済みセット内のメンバーの辞書順の境界を表します。LIMIT offset count:オプションのパラメータで、返される結果の数を制限するために使用します。offset先頭からいくつの要素をスキップするかを表し、countいくつの要素を返すかを表します。
コマンドの動作:
- もし
minである+或minの後の最初の要素、maxである-或maxの前の最後の要素の場合、キーkeyに保存されているソート済みセット内のすべての要素を返します。 - もし
minとmaxが両方とも具体的な文字列の場合、ソート済みセット内の辞書順がminとmaxの間にあるすべての要素を返します。 - もし
minである+或minの後の最初の要素であり、maxが具体的な文字列の場合、ソート済みセット内の辞書順が次の値以上(greater than or equal)maxのすべての要素を返します。 - もし
minが具体的な文字列であり、maxである-或maxの前の最後の要素の場合、ソート済みセット内の辞書順が次の値以下(less than or equal)minのすべての要素を返します。
利用可能なバージョン
>= 2.8.9
戻り値
指定された範囲内の要素のリスト。
実例
redis 127.0.0.1:6379> ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g (integer) 7 redis 127.0.0.1:6379> ZRANGEBYLEX myzset - [c 1) "a" 2) "b" 3) "c" redis 127.0.0.1:6379> ZRANGEBYLEX myzset - (c 1) "a" 2) "b" redis 127.0.0.1:6379> ZRANGEBYLEX myzset [aaa (g 1) "b" 2) "c" 3) "d" 4) "e" 5) "f" redis>
ソート済みセット myzset に次の要素が含まれているとします:
ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g
辞書順が a と f の間にあるすべての要素を取得:
ZRANGEBYLEX myzset a f
辞書順が b より大きく f より小さいすべての要素を取得:
ZRANGEBYLEX myzset [b (f
辞書順が a と f の間にある要素を取得しますが、最初の3つのみ返します:
ZRANGEBYLEX myzset a f LIMIT 0 3
なお、ZRANGEBYLEX コマンドはスコア(score)ではなく辞書順で範囲クエリを実行します。そのため、アルファベット順にデータを検索する必要があるシーンに非常に適しています。
その他の拡張
