Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

Redis ZREVRANGEコマンドの使い方|スコア降順で指定ランク範囲のソート済みセット要素を取得する方法

このチュートリアルでは、RedisのZREVRANGEコマンドを使って、スコアの降順で並べられたソート済みセット(Sorted Set)から、指定したランク範囲に該当する1つ以上の要素を取得する方法を解説します。

ZREVRANGEコマンドとは

ZREVRANGEコマンドは、指定したキーに保存されたソート済みセットから、指定された範囲に含まれる1つ以上の要素を返します。ソート済みセット内の要素はスコアの降順で並べられており、同一スコアを持つ要素同士は辞書順の降順で比較されます。

範囲はstart(開始位置・含む)とend(終了位置・含む)のオフセットで定義されます。これらのオフセットは0始まりのインデックスであり、0が最初の要素、1が2番目の要素を意味します。また、負の数を指定するとリストの末尾から数えた位置となり、-1は最後の要素、-2は最後から2番目の要素を表します。

範囲外のオフセットが指定された場合の挙動は以下の通りです。

  1. ( start > end ) または ( start > ソート済みセットのサイズ ):結果は空のリストになります。
  2. ( end > ソート済みセットのサイズ ):endオフセットは自動的にソート済みセットの最後の要素のインデックスに調整されます。

キーが存在しない場合は空のセットが返され、キーは存在するものの保存されている値がソート済みセット型ではない場合にはエラーが返されます。

オプションのWITHSCORES引数を指定すると、要素とともにそのスコアも取得できます。この場合、返される配列は value1, score1, … valueN, scoreN という形式になり、通常の value1, … valueN とは異なる点に注意してください。

Redis ZREVRANGEコマンドの構文は以下の通りです。

構文

redis host:post> ZREVRANGE <keyname> <start> <stop> [ WITHSCORES ]

戻り値

- (array) reply:指定された範囲のソート済みセットの要素を表す配列。
- 空のセット:キーが存在しない場合。
- エラー:キーは存在するが、保存されている値がソート済みセット型でない場合。

使用例

Redis ZREVRANGEコマンドの使い方|スコア降順で指定ランク範囲のソート済みセット要素を取得する方法

参考資料

  1. ZREVRANGEコマンド公式ドキュメント

以上が、RedisのZREVRANGEコマンドを使って、スコア降順で指定したランク範囲のソート済みセット要素を取得する方法でした。この記事が役に立ったと思われた方は、ぜひコメント欄でご意見をお聞かせいただき、他の方にもシェアしていただけると嬉しいです。

  1. Redis ZREVRANGEBYSCOREコマンド徹底解説!スコア範囲を指定してソート済みセットの要素を降順で取得する方法

    このチュートリアルでは、RedisのZREVRANGEBYSCOREコマンドを使用して、指定したスコア範囲内に含まれるソート済みセット(Sorted Set)の全要素を、スコアの降順で取得する方法を詳しく解説します。 ZREVRANGEBYSCOREコマンドとは ZREVRANGEBYSCOREコマンドは、引数として渡されたmax(最大値)以下かつmin(最小値)以上のスコアを持つ、ソート済みセット内のすべての要素を返します。要素はスコアの降順で返され、同一のスコアを持つ要素同士は辞書順の逆順(降順)で並べられます。 デフォルトではmaxとminは閉区間(境界値を含む)として扱われますが、値の

  2. Redis ZRANGEBYSCOREコマンドの使い方 – スコア範囲を指定してソート済みセットの要素を昇順に取得する方法

    このチュートリアルでは、RedisのZRANGEBYSCOREコマンドを使用して、指定したスコア範囲内にあるソート済みセット(sorted set)のすべての要素を、スコアの昇順で取得する方法について解説します。 ZRANGEBYSCOREコマンドとは ZRANGEBYSCOREコマンドは、引数として渡されたmin(最小値)以上かつmax(最大値)以下のスコアを持つ、ソート済みセット内のすべての要素を返します。返される要素はスコアの昇順に並べられ、同じスコアを持つ要素同士は辞書順(レキシコグラフィカル順)で昇順に配置されます。 デフォルトではminとmaxは閉区間(境界値を含む)として扱われま