Redis:集合SINTER、SINTERSTORE、SUNION、SUNIONSTORE、SDIFF、SDIFFSTORE命令介绍

Redis:集合SINTER、SINTERSTORE、SUNION、SUNIONSTORE、SDIFF、SDIFFSTORE命令介绍SINTER SINTER key key 可用版本 gt 1 0 0 时间复杂度 O N M N 为给定集合当中基数最小的集合 M 为给定集合的个数 返回所有给定集合的交集 不存在的 key 会被视为空集 演示 当给定的 key 中有不存在或者是空集的情况时

大家好,我是讯享网,很高兴认识大家。

SINTER

SINTER key [key …] 

讯享网
讯享网可用版本: >= 1.0.0 时间复杂度: O(N * M), N 为给定集合当中基数最小的集合, M 为给定集合的个数。 

返回所有给定集合的交集。不存在的key会被视为空集。

演示

当给定的key中有不存在或者是空集的情况时,根据集合运算定律,结果很显然也为空集。

127.0.0.1:6379> scard set (integer) 23 127.0.0.1:6379> scard set2 (integer) 0 127.0.0.1:6379> sinter set set2 (empty list or set) 

否则,返回所有给定集合的交集。

讯享网127.0.0.1:6379> smembers set 1) "0" 2) "1" 3) "2" 4) "3" 5) "5" 6) "6" 7) "7" 8) "8" 9) "9" 10) "10" 11) "11" 12) "12" 13) "13" 14) "14" 15) "15" 16) "16" 17) "17" 18) "18" 19) "19" 20) "20" 21) "21" 22) "22" 23) "23" 127.0.0.1:6379> smembers set2 1) "12" 2) "17" 3) "23" 4) "25" 5) "56" 6) "78" 7) "90" 127.0.0.1:6379> sinter set set2 1) "12" 2) "17" 3) "23" 

当给定的key中存在不是集合的类型时,命令会返回错误。

127.0.0.1:6379> sinter set list (error) WRONGTYPE Operation against a key holding the wrong kind of value 127.0.0.1:6379> lrange list 0 -1 1) "3" 2) "2" 3) "1" 

SINTERSTORE

讯享网SINTERSTORE destination key [key …] 
可用版本: >= 1.0.0 时间复杂度: O(N * M), N 为给定集合当中基数最小的集合, M 为给定集合的个数。 

这个命令类似于SINTER命令,但它将结果保存到destination集合,而不是简单地返回结果集。如果 destination集合已经存在,则将其覆盖。destination可以是key本身。

演示

如果 destination集合已经存在,则将其覆盖。并且命令返回 destination集合的元素数量。

讯享网127.0.0.1:6379> smembers set3 1) "1" 2) "2" 3) "3" 4) "4" 127.0.0.1:6379> smembers set 1) "5" 2) "6" 3) "8" 4) "12" 5) "13" 6) "17" 7) "21" 8) "23" 127.0.0.1:6379> smembers set2 1) "12" 2) "17" 3) "23" 4) "25" 5) "56" 6) "78" 7) "90" 127.0.0.1:6379> sinterstore set3 set set2 (integer) 3 127.0.0.1:6379> smembers set3 1) "12" 2) "17" 3) "23" 

如果 destination不存在,命令会先创建一个空集合,再在这个空集合上执行该命令。

127.0.0.1:6379> exists set5 (integer) 0 127.0.0.1:6379> sinterstore set5 set set2 (integer) 3 127.0.0.1:6379> smembers set5 1) "12" 2) "17" 3) "23" 

当给定的destination或多个key中存在不是集合的类型时,命令会返回错误。

SUNION

讯享网SUNION key [key …] 
可用版本: >= 1.0.0 时间复杂度: O(N), N 是所有给定集合的成员数量之和。 

返回所有给定集合的并集。不存在的key同样被视为空集。

演示

返回所有给定集合的并集。

讯享网127.0.0.1:6379> smembers set3 1) "12" 2) "17" 3) "23" 4) "50" 5) "79" 6) "100" 7) "101" 127.0.0.1:6379> smembers set2 1) "12" 2) "17" 3) "23" 4) "25" 5) "56" 6) "78" 7) "90" 127.0.0.1:6379> smembers set 1) "5" 2) "6" 3) "8" 4) "12" 5) "13" 6) "17" 7) "21" 8) "23" 127.0.0.1:6379> sunion set set2 set3 1) "5" 2) "6" 3) "8" 4) "12" 5) "13" 6) "17" 7) "21" 8) "23" 9) "25" 10) "50" 11) "56" 12) "78" 13) "79" 14) "90" 15) "100" 16) "101" 

当给定的key中存在不是集合的类型时,命令会返回错误。

SUNIONSTORE

SUNIONSTORE destination key [key …] 
讯享网可用版本: >= 1.0.0 时间复杂度: O(N), N 是所有给定集合的成员数量之和。 

这个命令类似于SUNION命令,但它将结果保存到destination集合,而不是简单地返回结果集。如果 destination集合已经存在,则将其覆盖。destination可以是key本身。


讯享网

演示

如果 destination集合已经存在,则将其覆盖。并且命令返回 destination集合的元素数量。

127.0.0.1:6379> smembers set2 1) "12" 2) "17" 3) "23" 4) "25" 5) "56" 6) "78" 7) "90" 127.0.0.1:6379> smembers set 1) "5" 2) "6" 3) "8" 4) "12" 5) "13" 6) "17" 7) "21" 8) "23" 127.0.0.1:6379> smembers set4 1) "0" 2) "7" 3) "8" 4) "9" 127.0.0.1:6379> sunionstore set4 set set2 (integer) 12 127.0.0.1:6379> smembers set4 1) "5" 2) "6" 3) "8" 4) "12" 5) "13" 6) "17" 7) "21" 8) "23" 9) "25" 10) "56" 11) "78" 12) "90" 

如果 destination不存在,命令会先创建一个空集合,再在这个空集合上执行该命令。

讯享网127.0.0.1:6379> exists set5 (integer) 0 127.0.0.1:6379> sunionstore set5 set set2 (integer) 12 127.0.0.1:6379> smembers set5 1) "5" 2) "6" 3) "8" 4) "12" 5) "13" 6) "17" 7) "21" 8) "23" 9) "25" 10) "56" 11) "78" 12) "90" 

当给定的destination或多个key中存在不是集合的类型时,命令会返回错误。

SDIFF

SDIFF key [key …] 
讯享网可用版本: >= 1.0.0 时间复杂度: O(N), N 是所有给定集合的成员数量之和。 

返回所有给定集合之间的差集。不存在的key会被视为空集。

演示

命令返回一个包含差集成员的列表。

127.0.0.1:6379> smembers set 1) "5" 2) "6" 3) "8" 4) "12" 5) "13" 6) "17" 7) "21" 8) "23" 127.0.0.1:6379> smembers set2 1) "12" 2) "17" 3) "23" 4) "25" 5) "56" 6) "78" 7) "90" 127.0.0.1:6379> smembers set3 1) "12" 2) "17" 3) "21" 4) "50" 5) "79" 6) "100" 7) "101" 127.0.0.1:6379> sdiff set set2 set3 1) "5" 2) "6" 3) "8" 4) "13" 

当给定的key中存在不是集合的类型时,命令会返回错误。

SDIFFSTORE

讯享网SDIFFSTORE destination key [key …] 
可用版本: >= 1.0.0 时间复杂度: O(N), N 是所有给定集合的成员数量之和。 

这个命令和SDIFF命令类似,但它将结果保存到destination集合,而不是简单地返回结果集。如果destination集合已经存在,则将其覆盖。destination可以是key本身。

演示

如果destination集合已经存在,则将其覆盖。

讯享网127.0.0.1:6379> smembers set3 1) "12" 2) "17" 3) "23" 4) "50" 5) "79" 6) "100" 7) "101" 127.0.0.1:6379> smembers set2 1) "12" 2) "17" 3) "23" 4) "25" 5) "56" 6) "78" 7) "90" 127.0.0.1:6379> smembers set5 1) "12" 2) "17" 3) "23" 127.0.0.1:6379> sdiffstore set3 set2 set5 (integer) 4 127.0.0.1:6379> smembers set3 1) "25" 2) "56" 3) "78" 4) "90" 

如果 destination不存在,命令会先创建一个空集合,再在这个空集合上执行该命令。

127.0.0.1:6379> exists set10 (integer) 0 127.0.0.1:6379> sdiffstore set10 set2 set5 (integer) 4 127.0.0.1:6379> smembers set10 1) "25" 2) "56" 3) "78" 4) "90" 

当给定的destination或多个key中存在不是集合的类型时,命令会返回错误。

Redis中集合的SINTER、SINTERSTORE、SUNION、SUNIONSTORE、SDIFF、SDIFFSTORE命令就介绍到这里。

写博客是博主记录自己的学习过程,如果有错误,请指正,谢谢!

小讯
上一篇 2025-02-28 13:38
下一篇 2025-03-06 10:32

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/52196.html