zoukankan      html  css  js  c++  java
  • 6、数据类型四:sets

    集合的基本特征:无序,唯一。

    一个redis集合最多能存放232-1个集合元素。其强大之处在于它支持集合的“交、差、并”运算,而且能够快速的判断某个给定值是否在集合中。

    1、基本命令:

    SADD key member [member ...]
    SREM key member [member ...]
    
    SMEMBERS key
    SISMEMBER key member
    
    SCARD key
    
    SPOP key [count]
    SRANDMEMBER key [count]
    SMOVE source destination member
    
    //交
    SINTER key [key ...]
    SINTERSTORE destination key [key ...]
    
    //差
    SDIFF key [key ...]
    SDIFFSTORE destination key [key ...]
    
    //并
    SUNION key [key ...]
    SUNIONSTORE destination key [key ...]

    2、命令解析:

    ①、SADD key member [member ...] / SREM key member [member ...]

    功能:SADD向集合中新增一个或多个元素;SREM从结合总删除一个或多个元素;

    时间复杂度:O(N),N是要操作的member的个数

    example

    ②、SMEMBERS key / SISMEMBER key member

    功能:SMEMBERS列出集合中的所有元素。SISMEMEBER判断member是不是属于集合。

    时间复杂度:SMEMBERS为O(N),N为集合中元素总数。SISMEMBER的时间复杂度为O(1)。

    example

    ③、SCARD key

    功能:返回集合中元素的个数

    时间复杂度:O(1)

    example

    ④、SPOP key [count]  / SRANDMEMBER key [count]

    功能:SPOP从集合中随机的捞出count个元素返回,并且删除返回的元素。SRANDMEMBER也是随机返回count个元素,但是不会删除集合中返回的元素。注意:count可以取正数或负数,其绝对值表示要随机返回元素的个数,如果count > 0则返回元素不能有相同的,如果count < 0则返回元素允许有相同的。

    时间复杂度:O(N),N表示要返回随机元素的葛素。

    example

    ⑤、SMOVE source destination member

    功能:将“源”集合中的某个元素移动到“目的”集合中。

    时间复杂度:O(1)

    example

    ⑥、SINTER key [key ...] / SINTERSTORE destination key [key ...]

    功能:“交集”运算:key1 ∩ key2 ∩ key3 ∩ ...。区别在于SINTER直接将结果返回,SINTERSTORE不会将结果返回,而是存放在destination集合中。

    时间复杂度:O(N*M),N是列表中最小集合中元素的个数,M是列表中集合的个数。

    example

    ⑦、SDIFF key [key ...] / SDIFFSTORE destination key [key ...]

    功能:“差集”运算:key1 - key2 - key3 - ...

    时间复杂度:O(N),N表示所有列表中集合元素的总个数

    example:

    ⑧、SUNION key [key ...] / SUNIONSTORE destination key [key ...]

    功能:“并集”运算:key1 ∪ key2 ∪ key3 ∪ ...

    时间复杂度:O(N),N表示所有列表中集合元素的总个数

    example

  • 相关阅读:
    2018 ICPC南京网络赛 A An Olympian Math Problem(数论题)
    算法竞赛模板 素数测试(Miller-Rabin测试)
    算法竞赛模板 tarjan算法
    2018 CCPC网络赛 1004 Find Integer(勾股数+费马大定理)
    算法竞赛模板 概率dp
    算法竞赛模板 重载运算符
    算法竞赛模板 矩阵快速幂
    算法竞赛模板 回文素数
    算法竞赛模板 AC自动机
    算法竞赛模板 拓扑排序
  • 原文地址:https://www.cnblogs.com/lj95801/p/5638628.html
Copyright © 2011-2022 走看看