zunionstore
ZUNIONSTORE
Redis 開発者教育 Redis Developer Course |
Redis 定期点検/技術支援 Redis Technical Support |
Redis エンタープライズサーバ Redis Enterprise Server |
---|
和集合を求めて新しい集合に保存
使い方は 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を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 |
<< ZREMRANGEBYLEX | ZUNIONSTORE | ZINTERSTORE >> |
---|
クリック件数 :