redisクラスタのzsetの交差集合を取得する方法
RedisクラスターでZSETの交差を求めるにはZINTERSTOREコマンドを使用する。
まず、ZINTERSTOREコマンドを利用して、交集結果を格納するための、新しい順序集合を作成します。コマンドの基本構文を以下に示します。
ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
- 行先:新しい順序付き集合の名前。
- 交集を計算する際に考慮される順序付き集合の数。
- 交わりを計算する順序付けられた集合の名前
- WEIGHT:各順序付き集合の重みを指定し、デフォルトは1です。
- 集計:交差計算時に使用する集計方法を指定します。 デフォルトは SUM です。
たとえば、set1、set2という2つの順序集合の交差をクラスタ上で計算したい場合は、次のコマンドを使用します。
ZINTERSTORE destination 2 set1 set2
destinationという名前の新しい順序付けられた集合をクラスター内に作成し、その中にset1とset2の共通部分を格納します。
Redisクラスタを使用している場合は、ZINTERSTORE コマンドで交集合を計算することしかできず、和集合や差集合を計算することはできません。和集合や差集合を計算する必要がある場合は、Luaスクリプトを使用するか、アプリケーションで計算するなどの他の方法を使用する必要があります。