Redis对象--SET类型

84 阅读1分钟

SET类型

SET类型常见操作

说明:set是无序集合

  • 写操作:

    • SADD KEY MEMBER1 MEMBER2 MEMBER3...【返回值是集合数量】
    • SREM KEY MEMBER1 MEMBER2 MEMBER3...【删除为key的集合中MEMBER1的set,返回删除数量】
  • 读操作:

    • SISMEMBER KEY MEMBER1 【查看集合key中是否有MEMBER1】
    • SCARD KEY【查看集合KEY中有多少个元素】
    • SMEMEBERS KEY【查看KEY中所有的元素】
    • SSCAN key cursor [MATCH pattern] [COUNT count]SSCAN命令返回的结果是一个包含两个元素的数组,第一个元素是下一个迭代器的游标,第二个元素是一个数组,包含了迭代到的成员】
    • SINTER KEY1[KEY2,KEY3.....]【求交集,返回在KEY1中,又在KEY2,KEY3中所有的元素】
    • SDIF KEY1[KEY2,KEY3.....]【返回在KEY1中,但不在KEY2,KEY3中所有的元素】
    • SUNION KEY1[KEY2,KEY3.....]【求并集】

SET编码方式

说明:REDIS的所有OBJECT的结构体字段包含:TYPE(这里是SET型) ENCODING REFCOUNT PTR(内容指针)

  • 当元素小于等于512时,采用INTESET(整数集合),节约内存,二分查找时间复杂度O(log2N)
  • 当元素大于512时,采用HASHTABLE(字典),查找时间复杂度O(1)