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 的并集共包含 6 个元素。
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 -- 并集共包含6个元素
redis> SMEMBERS s1-union-s2
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"