SUNION、SUNIONSTORE:对集合执行并集计算
SUNION
命令可以计算出用户给定的所有集合的并集,然后返回这个并集包含的所有元素:
- SUNION set [set ...]
比如对于以下这两个集合来说:
- redis> SMEMBERS s1
- 1) "a"
- 2) "b"
- 3) "c"
- 4) "d"
- redis> SMEMBERS s2
- 1) "c"
- 2) "d"
- 3) "e"
- 4) "f"
我们可以通过执行以下命令,计算出这两个集合的并集:
- redis> SUNION s1 s2
- 1) "a"
- 2) "b"
- 3) "c"
- 4) "d"
- 5) "e"
- 6) "f"
从结果可以看出,s1
和 s2
的并集共包含六个元素。
SUNIONSTORE 命令
跟 SINTERSTORE
命令类似,Redis 也为 SUNION
提供了相应的 SUNIONSTORE
命令,这个命令可以把给定集合的并集计算结果储存到指定的键里面,并在键已经存在的情况下,自动覆盖已有的键:
- SUNIONSTORE destination_key set [set ...]
SUNIONSTORE
命令在执行完毕之后,将返回并集元素的数量作为返回值。
比如说,通过执行以下命令,我们可以把 s1
和 s2
的并集计算结果储存到集合 s1-union-s2
里面:
- redis> SUNIONSTORE s1-union-s2 s1 s2
- (integer) 6 -- 并集共包含六个元素
- redis> SMEMBERS s1-union-s2
- 1) "a"
- 2) "b"
- 3) "c"
- 4) "d"
- 5) "e"
- 6) "f"
其他信息
属性 | 值 |
---|---|
复杂度 | SUNION 命令和 SUNIONSTORE 命令的复杂度都是 O(N) ,其中 N 为所有给定集合包含的元素数量总和。 |
版本要求 | SUNION 命令和 SUNIONSTORE 命令从 Redis 1.0.0 版本开始可用。 |