Redis ZLEXCOUNTコマンドの使い方 – 辞書順の範囲でソート済みセットの要素数を取得する方法
このチュートリアルでは、RedisのZLEXCOUNTコマンドを使って、指定した範囲内の値を持つソート済みセット(Sorted Set)の要素数を取得する方法を解説します。
ZLEXCOUNTコマンドとは
ZLEXCOUNTコマンドは、ソート済みセットに格納された要素のうち、min(最小値)とmax(最大値)の引数で指定した範囲に含まれる要素(要素の文字列表現)の数を返します。
このコマンドを利用する際は、ソート済みセットのすべての要素に同じスコアを挿入しておく必要があります。こうすることで、スコアではなく要素そのものの辞書順(レキシコグラフィカル順)による並び替えが強制されます。
範囲指定のルール
minおよびmax引数は、必ず(または[で始める必要があります。
- [ … 閉区間(指定した値を含む)
- ( … 開区間(指定した値を含まない)
たとえば、次のコマンドは「a ≤ 要素 ≤ f」に該当する要素数を返します。
ZLEXCOUNT set [a [f
一方、次のコマンドは「a ≤ 要素 < f」に該当する要素数を返します。
ZLEXCOUNT set [a (f
また、minとmaxには特別な値として+と-を指定できます。+は正の無限大の文字列、-は負の無限大の文字列を表します。たとえば、ZLEXCOUNT set - +を実行すると、ソート済みセット全体のサイズ(全要素数)が返されます。
なお、キーが存在するものの、そのキーに保存されている値がソート済みセット型ではない場合は、エラーが返されます。
構文
redis host:post> ZLEXCOUNT <keyname> <min> <max>
戻り値
- 指定した範囲内の要素数を表す整数値 - エラー:キーが存在するが、保存されている値がソート済みセット型でない場合
実行例

参考資料
- ZLEXCOUNTコマンド公式ドキュメント
以上、RedisのZLEXCOUNTコマンドを使って、指定した範囲内の値を持つソート済みセットの要素数を取得する方法について解説しました。この記事が役に立った場合は、ぜひコメント欄でご意見をお聞かせください。また、周りの方にもシェアしていただけると嬉しいです。
-
Redis ZREVRANGEBYSCOREコマンド徹底解説!スコア範囲を指定してソート済みセットの要素を降順で取得する方法
このチュートリアルでは、RedisのZREVRANGEBYSCOREコマンドを使用して、指定したスコア範囲内に含まれるソート済みセット(Sorted Set)の全要素を、スコアの降順で取得する方法を詳しく解説します。 ZREVRANGEBYSCOREコマンドとは ZREVRANGEBYSCOREコマンドは、引数として渡されたmax(最大値)以下かつmin(最小値)以上のスコアを持つ、ソート済みセット内のすべての要素を返します。要素はスコアの降順で返され、同一のスコアを持つ要素同士は辞書順の逆順(降順)で並べられます。 デフォルトではmaxとminは閉区間(境界値を含む)として扱われますが、値の
-
Redis ZRANGEBYSCOREコマンドの使い方 – スコア範囲を指定してソート済みセットの要素を昇順に取得する方法
このチュートリアルでは、RedisのZRANGEBYSCOREコマンドを使用して、指定したスコア範囲内にあるソート済みセット(sorted set)のすべての要素を、スコアの昇順で取得する方法について解説します。 ZRANGEBYSCOREコマンドとは ZRANGEBYSCOREコマンドは、引数として渡されたmin(最小値)以上かつmax(最大値)以下のスコアを持つ、ソート済みセット内のすべての要素を返します。返される要素はスコアの昇順に並べられ、同じスコアを持つ要素同士は辞書順(レキシコグラフィカル順)で昇順に配置されます。 デフォルトではminとmaxは閉区間(境界値を含む)として扱われま