这里写目录标题

  • 5.9 SINTER、SINTERSTORE:对集合执行交集计算
  • 5.9.1 SINTERSTORE命令
  • 5.9.2 其他信息
  • 参考目录


5.9 SINTER、SINTERSTORE:对集合执行交集计算

        SINTER命令可以计算出用户给定的所有集合的交集,然后返回这个交集包含的所有元素:

redis 求并集 redis 取交集_sinter

        比如对于以下这两个集合来说:

redis 求并集 redis 取交集_sinterstore_02

        我们可以通过执行以下命令计算出这两个集合的交集:

redis 求并集 redis 取交集_sinter_03

        从结果可以看出,s1和s2的交集包含了"c"和"d"这两个元素。

5.9.1 SINTERSTORE命令

        除了SINTER命令之外,Redis还提供了SINTERSTORE命令,这个命令可以把给定集合的交集计算结果存储到指定的键里面:

redis 求并集 redis 取交集_redis_04

        如果给定的键已经存在,那么SINTERSTORE命令在执行存储操作之前 会先删除已有的键。

        SINTERSTORE命令在执行完毕之后会返回被存储的交集元素数量作为返回值。

        例如,通过执行以下命令,我们可以把s1和s2的交集计算结果存储到集合s1-inter-s2中:

redis 求并集 redis 取交集_sinterstore_05

5.9.2 其他信息

        复杂度:SINTER命令和SINTERSTORE命令的复杂度都是O(N*M), 其中N为给定集合的数量,而M则是所有给定集合当中,包含元素最少 的那个集合的大小。

        版本要求:SINTER命令和SINTERSTORE命令从Redis 1.0.0版本开始可用。

参考目录

绝大多数 内容来自 Redis使用手册 (黄健宏 著) 第5章 集合