• Redis学习笔记(六)——数据结构之Set


    一、介绍

      Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

      Redis中集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1)。

      集合中最大的成员数为 (4294967295, 每个集合可存储40多亿个成员)。

      

      基本命令:

    • 增加/更新

      sadd key member1 [member2 ...]   (向集合添加一个或多个成员)

     

    • 查询

      scard key  (获取集合的成员数) 

      smembers key  (返回集合中的所有成员)

      srandmember key [count]  (返回集合中一个或多个随机数)

      sscan key cursor [match pattern] [count count]  (迭代集合中的元素)

     

    • 判断

      sismember key member  (判断member元素是否是集合key的成员)

     

    • 删除/移动

      srem key member1 [member2 ...]  (移除集合中一个或多个成员)

      spop key  (移除并返回集合中的一个随机元素) 

      smove source destination member  (将member元素从source集合移动到destination集合) 

     

    • 差集/并集

      sdiff key1 [key2]  (返回给定所有集合的差集)

      sdiffstore destination key1 [key2]  (返回给定所有集合的差集并存储在destination中)

      sinter key1 [key2]  (返回给定所有集合的交集)

      sinterstore destination key1 [key2]  (返回给定所有集合的交集并存储在destination中)

      sunion key1 [key2]  (返回所有给定集合的并集)

      sunionstore destination key1 [key2]  (所有给定集合的并集存储在destination集合中) 

     

     

    二、操作

    • 增加

      1、sadd key member1 [member2 ...]   (向集合添加一个或多个成员)

      

     

      如果集合中已存在已有的元素,则添加返回0

      

     

     

    • 查询

      1、scard key  (获取集合的成员数)

      

     

      2、smembers key  (返回集合中的所有成员)

      

     

      3、srandmember key [count]  (返回集合中一个或多个随机数)

      

     

      4、sscan key cursor [match pattern] [count count]  (迭代集合中的元素)

      判断集合元素是否存在(0: 不存在, 1: 存在)

      

     

      

    • 判断

      1、sismember key member  (判断member元素是否是集合key的成员)

      

     

     

    • 删除/移动

      1、srem key member1 [member2 ...]  (移除集合中一个或多个成员)

      如果删除的元素不存在,返回0,删除成功返回1

      

     

      2、spop key  [count] (移除并返回集合中的一个或多个随机元素)

      

     

      3、smove source destination member  (将member元素从source集合移动到destination集合)

      

      

      如果集合中元素不存在,返回0

      

     

    • 差集/并集

      1、sdiff key1 [key2]  (返回给定所有集合的差集)

      获取两个集合的差集(不同的元素)

      

     

      2、sdiffstore destination key1 [key2]  (返回给定所有集合的差集并存储在destination中)

      set1 和 set2  的差集

      

      

      返回set1和set2集合的差集并存储在set3中:

      

     

      3、sinter key1 [key2]  (返回给定所有集合的交集)

      获取两个集合的交集(相同的元素)

      

     

      4、sinterstore destination key1 [key2]  (返回给定所有集合的交集并存储在destination中)

      

     

      5、sunion key1 [key2]  (返回所有给定集合的并集)

      并集的结果:给定的集合里面的元素只能出现一次

      

     

      6、sunionstore destination key1 [key2]  (所有给定集合的并集存储在destination集合中) 

      

     

     

     

     

     

     

  • 相关阅读:
    qunar面试题及一位大牛的解答
    深入理解js里面的this
    用js实现的一个可拖动标签的例子
    Linux启动详细过程(开机启动顺序)
    linux下用top命令查看cpu利用率超过100%
    linux内核内存管理(zone_dma zone_normal zone_highmem)
    用户线程与内核线程如何映射?
    Linux用户空间与内核地址空间
    linux超级块和inode 详解 和 df 、du 命令详解与环境变量
    内核空间、进程和线程等概念
  • 原文地址:https://www.cnblogs.com/hejianliang/p/9555818.html
Copyright © 2020-2023  润新知