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

  • 相关阅读:
    xftp,winscp显示隐藏文件
    今日校园-打卡
    dungeon quest(又名暗黑遗迹,勇闯地下城等)装备体系简述
    frp转发
    虚拟机win10添加新磁盘
    JEECG(一) 如何配置自己的业务包
    C# 获取Url 请求方式 域名 端口 路径
    js url 参数 转换成 json 对象数据
    VisualStudio2017 远程 调试 IIS 服务器 web网站
    c# MVC Action 如何知道 发送方给你的 Json 数据的格式内容是什么
  • 原文地址:https://www.cnblogs.com/lj95801/p/5638628.html
Copyright © 2011-2022 走看看