redisクラスタのzsetの交差集合を取得する方法

RedisクラスターでZSETの交差を求めるにはZINTERSTOREコマンドを使用する。

まず、ZINTERSTOREコマンドを利用して、交集結果を格納するための、新しい順序集合を作成します。コマンドの基本構文を以下に示します。

ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]

  1. 行先:新しい順序付き集合の名前。
  2. 交集を計算する際に考慮される順序付き集合の数。
  3. 交わりを計算する順序付けられた集合の名前
  4. WEIGHT:各順序付き集合の重みを指定し、デフォルトは1です。
  5. 集計:交差計算時に使用する集計方法を指定します。 デフォルトは SUM です。

たとえば、set1、set2という2つの順序集合の交差をクラスタ上で計算したい場合は、次のコマンドを使用します。

ZINTERSTORE destination 2 set1 set2

destinationという名前の新しい順序付けられた集合をクラスター内に作成し、その中にset1とset2の共通部分を格納します。

Redisクラスタを使用している場合は、ZINTERSTORE コマンドで交集合を計算することしかできず、和集合や差集合を計算することはできません。和集合や差集合を計算する必要がある場合は、Luaスクリプトを使用するか、アプリケーションで計算するなどの他の方法を使用する必要があります。

bannerAds