Redis Zinterstore コマンド

Redis ソート済みセット(sorted set)

Redis Zinterstore は複数のソート済みセットの共通部分を計算し、結果を新しいソート済みセットに保存するために使用されます。

Zinterstore コマンドは、ソート済みセットに対して集合演算(例えば共通部分の計算)を行う必要がある場合に非常に便利です。

デフォルトでは、結果セット内のメンバーのスコア値は、指定されたすべてのセットにおけるそのメンバーのスコア値の合計です。

構文

redis Zinterstore コマンドの基本的な構文は次のとおりです:

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE sum|min|max]
  • destination:結果のソート済みセットの名前。
  • numkeys:共通部分を計算するソート済みセットの数。
  • key:計算に参加するソート済みセットの名前。
  • WEIGHTS weight [weight ...]:各ソート済みセットの重みを指定します。デフォルトの重みは 1 です。
  • AGGREGATE sum|min|max:共通部分の結果の集約方法を指定します。デフォルトはsum(合計)です。

利用可能なバージョン

>= 2.0.0

戻り値

ターゲットの結果セットに保存されたメンバーの数。

例

# 有序集 mid_test
redis 127.0.0.1:6379> ZADD mid_test 70 "Li Lei"
(integer) 1
redis 127.0.0.1:6379> ZADD mid_test 70 "Han Meimei"
(integer) 1
redis 127.0.0.1:6379> ZADD mid_test 99.5 "Tom"
(integer) 1

# 另一个有序集 fin_test
redis 127.0.0.1:6379> ZADD fin_test 88 "Li Lei"
(integer) 1
redis 127.0.0.1:6379> ZADD fin_test 75 "Han Meimei"
(integer) 1
redis 127.0.0.1:6379> ZADD fin_test 99.5 "Tom"
(integer) 1

# 交集
redis 127.0.0.1:6379> ZINTERSTORE sum_point 2 mid_test fin_test
(integer) 3

# 显示有序集内所有成员及其分数值
redis 127.0.0.1:6379> ZRANGE sum_point 0 -1 WITHSCORES     
1) "Han Meimei"
2) "145"
3) "Li Lei"
4) "158"
5) "Tom"
6) "199"

Redis ソート済みセット(sorted set)

その他の拡張