Redis ZREMRANGEBYLEXコマンドの使い方 – 辞書順の範囲指定でソート済みセットの要素を削除する方法
このチュートリアルでは、ソート済みセット(Sorted Set)の値から、特定の範囲に含まれる要素を削除する方法を解説します。そのために使用するのが、RedisのZREMRANGEBYLEXコマンドです。
ZREMRANGEBYLEXコマンドとは
ZREMRANGEBYLEXコマンドは、ソート済みセットの値の中から、要素の文字列表現がmin引数とmax引数で指定した範囲内にあるすべての要素を削除します。
なお、このコマンドを使う前提として、ソート済みセット内のすべての要素には同じスコアが設定されている必要があります。これは、スコアではなく辞書順(レキシコグラフィカル順)で並べ替えを強制するためです。
min・max引数の指定方法
minとmaxの各引数は、必ず(または[で始める必要があります。それぞれの意味は以下の通りです。
- [:閉区間(指定した値を含む)
- (:開区間(指定した値を含まない)
例えば、次のコマンドを実行すると、「a <= 要素 <= f」を満たすすべての要素が削除されます。
ZREMRANGEBYLEX set [a [f
一方、次のように指定した場合は、「a <= 要素 < f」を満たす要素だけが削除されます。
ZREMRANGEBYLEX set [a (f
特殊な値「+」と「–」
minおよびmax引数には、+(正の無限大の文字列)や–(負の無限大の文字列)という特殊な値を指定することもできます。例えば、ZREMRANGEBYLEX set – +と実行すれば、ソート済みセット内のすべての要素が削除されます。
また、キーが存在しない場合は空のセットが返されます。キーは存在するものの、そこに格納されている値がソート済みセット型ではない場合には、エラーが返されます。
構文
redis host:post> ZREMRANGEBYLEX <keyname> <min> <max>
戻り値
- (array) reply:削除された要素の数 - 空のセット:キーが存在しない場合 - エラー:キーは存在するが、格納されている値がソート済みセット型ではない場合
実行例

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