Redis SUNIONSTORE命令是用于获取多个集合的并集并存储到一个新的集合中的命令。它的语法如下:
SUNIONSTORE destination_key key [key ...]
其中,destination_key表示新集合的KEY名称,key表示要求取并集的集合的KEY名称。
使用SUNIONSTORE命令,可以方便地合并多个集合,得到一个包含所有元素的新集合。这在处理一些需要合并多个集合的场景非常有用。
下面给出两个实例,进一步说明Redis SUNIONSTORE的使用。
示例一
假设有三个集合,分别是A、B和C,他们分别包含以下元素:
A: {1, 2, 3}
B: {2, 3, 4}
C: {3, 4, 5}
现在需要将它们合并成一个新集合D,包含所有元素,可以使用以下命令:
SUNIONSTORE D A B C
执行命令后,D集合将包含所有元素,即:
D: {1, 2, 3, 4, 5}
需要注意的是,如果原有的集合中存在重复元素,在新集合中也会去重后仅出现一次。
示例二
现有两个用户集合,集合A包含所有已注册用户,集合B包含所有VIP用户。现在需要统计所有VIP用户在已注册用户中的占比。
可以使用以下命令计算出:
SUNIONSTORE temp_set B A
SCARD temp_set
首先,使用SUNIONSTORE命令将集合B和A合并成一个temp_set集合,也就是包含所有已注册用户和VIP用户的集合。然后,使用SCARD命令计算temp_set集合的元素个数,也就是所有已注册用户的数量。假设temp_set集合有100个元素,而集合B(VIP用户集合)有20个元素,那么所有VIP用户在已注册用户中的占比为20%。
这里需要注意的是,如果有些用户同时是VIP用户和已注册用户,那么这些用户在temp_set集合中只会出现一次,不会重复计算。