ZUNIONSTORE

<< ZINCRBY ZINTERSTORE >>

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

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

Example

コマンド>zadd myset1 1 A 2 B 3 C
結果>3
コマンド>zadd myset2 4 B 5 C 6 D
結果>3
コマンド>zunionstore dest_key 2 myset1 myset2
結果>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に乗算されて、 二番目のweight 3は src_key2の各scoreに乗算されます。
myset1 = { (1,A), (2,B), (3,C) } -> { (1*2,A), (2*2,B), (3*2,C) }
myset2 = { (4,B), (5,C), (6,D) } -> { (4*3,B), (5*3,C), (6*3,D) }
ZUNIONSTORE dest_key 2 myset1 myset2 weights 2 3
= { (2,A), (4+12,B), (6+15,C), (18,D)}
= { (2,A), (16,B),     (21,C),    (18,D)}

Example

コマンド>zunionstore dest_key 2 myset1 myset2 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です。
minは、各memberで少ないscoreを取って、maxは大きなscoreを取ります。
myset1 = { (1,A), (2,B), (3,C) }
myset2 = { (4,B), (5,C), (6,D) }

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

Example

コマンド>zunionstore dest_key 2 myset1 myset2 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 myset1 myset2 aggregate max
結果>4
コマンド>zrange dest_key 0 -1 withscores
結果> 0) 1 -> A
1) 4 -> B
2) 5 -> C
3) 6 -> D

アニメーション表示



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

使い方は zunionstore dest_key 3 myset1 myset2 myset3です。

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



source keyをdesctination keyに指定可能

ZUNIONSTORE myset1 2 myset1 myset2
myset1のもともとあった内容は削除され、結果がmyset1に入ります。



コマンド

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

コマンドを実習してみたければ、ここをクリックして Redis Web Client を実行してください。


<< ZINCRBY ZUNIONSTORE ZINTERSTORE >>

質問したり、レスを見るためには、クリックしてください。  コメント :     クリック件数 :

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