• Redis数据结构:集合


    集合与列表的本质区别在于,存储的元素不可重复,无序。

    添加元素(SADD)

    使用SADD可以添加元素

    SADD  key  val [val2 val3...]

    可以添加单个元素

    SADD  number  "one" 

    SADD  number  "two"

    SADD  number  "three"

    等价于

    SADD  number  "one"  "two"  "three" 

    因为可以保证唯一性,因此当重复添加相同的元素时,会被忽略。

    移除元素(SREM)

    可以使用SREM移除指定的元素,支持批量操作 

    SREM  key  val [val2  val3...]

    例如,

    SREM  number  "one"  "two" 

    等价于

    SREM  number  "one"

    SREM  number  "two"

    -- 返回的移除的元素个数 

    当删除的元素不存在时,则返回0

    将元素从一个集合移动到另外的集合 (SMOVE)

    SMOVE可以实现集合元素的移动,从set1中删除,添加到set2

    SMOVE  set1  set2  element

     例如把one从number移动到english集合中

    SMOVE  number  english  "one"

    获取所有的元素(SMEMBERS)

    使用SMEMBERS可以获取所有的元素 

    SMEMBERS  key

    例如,想要获取number里面的所有元素

    SMEMBERS  number 

    获取元素的个数(SCARD)

    使用SCARD可以获取元素的个数 

    SCARD  key

    例如,想要获取number里面的元素个数

    SCARD  number 

    判断某个元素是否存在(SISMEMBER)

    使用SISMEMBER判断指定元素是否存在于指定的集合

    SISMEMBER  key  element

    例如,判断four在不在number集合中

    SISMEMBER  number  "four" 

    随机获取元素(SRANDMEMBER)

    1. 随机获取一个元素

    SRANDMEMBER  key

    示例:

    SRANDMEMBER  number

    -- 随机返回一个 

     2. 随机返回N个不重复元素

    SRANDMEMBER  key  +N

     示例:

    SRANDMEMBER  number  2

    -- 返回的2个元素一定不同

    3. 随机返回N个可重复元素 

    SRANDMEMBER  key  -N

    示例:

    SRANDMEMBER  number  -2

    -- 2个元素可能相同 

    随机移除元素(SPOP) 

    与SREM不同,SPOP是随机的。与SRANDMEMBER不同,SPOP是移除元素的。

    SPOP  key  +N

    如果随机移除一个元素,可以不指定N

    SPOP  number 

    也可以指定个数

    SPOP  number  2

    求交集(SINTER,  SINTERSTORE)

     将多个集合中均存在的元素取出

    SINTER  set1  set2  [set3 ...]

    示例:

    SINTER  number  english 

     SINTERSTORE是把交集的元素存入新的键中

    SINTERSTORE   new_key   set1   set2  [set3 ...]

    例如

    SINTERSTORE   result   number   english 

    求并集(SUNION,SUNIONSTRORE) 

     使用方法类似

    SUNION  set1  set2  [set3 ...] 

    SUNIONSTORE  result  set1  set2  [set3 ...] 

     

    求差集(SDIFF, SDIFFSTORE) 

    类似的

    SDIFF  set1  set2  [set3 ...] 

    SDIFFSTORE   result  set1  set2  [set3 ...]  

     

     

  • 相关阅读:
    定期360评估系统优于年度绩效考核
    Java---单列集合详解
    NTL:密码数论库--安装与使用
    opencv dnn模块 示例(25) 目标检测 object_detection 之 yolov9
    【WSN路由】异构无线传感器网络分布式节能分簇算法的设计(DEEC)附Matlab代码
    【算法 - 动态规划】最长回文子序列
    【资源推荐】一站式机器学习学习资料
    css面试题及答案 【集合目录】
    【WSN】无线传感器网络 X-Y 坐标到图形视图和位字符串前缀嵌入方法研究(Matlab代码实现)
    electron使用typescript
  • 原文地址:https://blog.csdn.net/Day_and_Night_2017/article/details/126476868