ZUNIONSTORE

Redis 開発者教育の申込 Redis 定期点検/技術サポート
Redis Technical Support
Redis エンタープライズサーバー
Redis Enterprise Server

和集合を求めて新しい集合に保存

使い方は zunionstore dest_key 2 src_key1 src_key2 です。
結果の集合は指定した dest_key に保存されます。 各 member の score は 加算されます。
src_key1 = { (1,A), (2,B), (3,C) }
src_key2 = { (4,B), (5,C), (6,D) }
dest_key = { (1,A), (6,B), (8,C), (6,D)}

Example

コマンド>zadd src_key1 1 A 2 B 3 C
結果>3
コマンド>zadd src_key2 4 B 5 C 6 D
結果>3
コマンド>zunionstore dest_key 2 src_key1 src_key2
結果>4
コマンド>zrange dest_key 0 -1 withscores
結果> 0) 1 -> A
1) 6 -> B
2) 6 -> D
3) 8 -> C

アニメーションを見る


weights の使用

使い方は zunionstore dest_key 2 src_key1 src_key2 weights 2 3 です。
最初の weight 2 は src_key1 の各 score に乗算され、2番目の weight 3 は src_key2 の各 score に乗算されます。
src_key1 = { (1,A), (2,B), (3,C) } -> { (1*2,A), (2*2,B), (3*2,C) }
src_key2 = { (4,B), (5,C), (6,D) } -> { (4*3,B), (5*3,C), (6*3,D) }
dest_key = { (2,A), (4+12,B), (6+15,C), (18,D)}
= { (2,A), (16,B),     (21,C),    (18,D)}

Example

コマンド>zunionstore dest_key 2 src_key1 src_key2 weights 2 3
結果>4
コマンド>zrange dest_key 0 -1 withscores
結果> 0) 2 -> A
1) 16 -> B
2) 18 -> D
3) 21 -> C

アニメーションを見る


aggregate の使用

使い方は zunionstore dest_key 2 src_key1 src_key2 aggregate sum|min|max です。
sum は各 score を合計します。aggregate を指定しない場合 sum が default なので sum で計算されます。
min は各 member で小さい score を取り、max は大きい score を取ります。
src_key1 = { (1,A), (2,B), (3,C) }
src_key2 = { (4,B), (5,C), (6,D) }

min の場合 dest_key = { (1,A), (2,B), (3,C), (6,D)}
max の場合 dest_key = { (1,A), (4,B), (5,C), (6,D)}

Example

コマンド>zunionstore dest_key 2 src_key1 src_key2 aggregate min
結果>4
コマンド>zrange dest_key 0 -1 withscores
結果> 0) 1 -> A
1) 2 -> B
2) 3 -> C
3) 6 -> D
コマンド>zunionstore dest_key 2 src_key1 src_key2 aggregate max
結果>4
コマンド>zrange dest_key 0 -1 withscores
結果> 0) 1 -> A
1) 4 -> B
2) 5 -> C
3) 6 -> D

アニメーションを見る


3つの集合の和集合を求めて保存

使い方は zunionstore dest_key 3 src_key1 src_key2 src_key3 です。

src_key1 ={ (1,A),(2,B),(3,C)}
src_key2 = {(4,B),(5,C)(6,D)}
src_key3 = { (7,C)(8,D)(9,E) }
dest_key ={ (1,A),(6,B),(15,C)(14,D)(9,E) }
source key の個数に制限はありません。


Source key を destination key に指定可能

ZUNIONSTORE src_key1 2 src_key1 src_key2
src_key1 の既存内容は消され、結果が src_key1 に入ります。


構文

ZUNIONSTORE dest_key numkeys src_key [src_key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

  • このコマンドは version 2.0.0 から使用できます。
  • 時間計算量は O(N)+O(M log(M)) です。 N は入力集合の総 member 数で、M は結果集合の member 数です。
関連コマンド ZINTERSTORE, SINTERSTORE, SUNIONSTORE, SDIFFSTORE
Clients for Java Jedis, Lettuce, Redisson
Clients for C Hiredis

<< ZDIFF ZUNIONSTORE ZINTERSTORE >>

Email 返事がかかってなれば、メールでお知らせします。