Redis ZREMRANGEBYSCOREコマンド徹底解説 – スコア範囲を指定してソート済みセットの要素を削除する方法
このチュートリアルでは、RedisのZREMRANGEBYSCOREコマンドを使用して、ソート済みセット(Sorted Set)から指定したスコア範囲内の要素を削除する方法を解説します。
ZREMRANGEBYSCOREコマンドとは
ZREMRANGEBYSCOREコマンドは、引数として渡されたmin(最小値)以上・max(最大値)以下のスコアを持つすべての要素を、ソート済みセットから一括で削除するコマンドです。
デフォルトではminとmaxは閉区間(境界値を含む)として扱われますが、値の先頭に((半角括弧)を付けることで、開区間(境界値を含まない)として指定することも可能です。
例えば、次のコマンドを実行すると:
ZREMRANGEBYSCORE set (1 5
1 < スコア <= 5 を満たすすべての要素が削除されます。
一方、次のように両方に括弧を付けると:
ZREMRANGEBYSCORE set (5 (10
5 < スコア < 10 を満たす要素のみが削除され、5と10自体は削除対象外となります。
また、minとmaxには -inf(負の無限大)や +inf(正の無限大)を指定できます。これにより、セット内の最高スコアや最低スコアを事前に把握していなくても、柔軟に範囲を指定することができます。
なお、キーが存在するものの、そのキーに格納されている値がソート済みセット型ではない場合は、エラーが返されます。
構文
redis host:port> ZREMRANGEBYSCORE <keyname> <min> <max>
戻り値
- (integer):削除された要素の数 - 0:キーが存在しない場合 - エラー:キーは存在するが、格納されている値がソート済みセット型ではない場合
実行例

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