• Redis的数据结构之Set


    存储Set

     和List类型不同的是,Set集合中不允许出现重复的元素

     Set可包含的最大元素数量是4294967295

    存储set常用命令:

    添加/删除元素

    获取集合中的元素

    集合中的差集运算

    集合中的交集运算

    集合中的并集元算

    扩展命令

     

    sadd key member [member ...]

    添加set元素

    127.0.0.1:6379> sadd set1  a b c

    (integer) 3

    添加三个元素

    smembers key

    查看指定key集合元素

    127.0.0.1:6379> smembers set1

    1) "c"

    2) "b"

    3) "a"

     

    127.0.0.1:6379> sadd set1 a d e

    (integer) 2

    127.0.0.1:6379> smembers set1

    1) "c"

    2) "d"

    3) "b"

    4) "a"

    5) "e"

    继续添加元素 发现 重复元素不再添加

     

    srem key member [member ...]

    删除元素

    127.0.0.1:6379> srem set1 a d

    (integer) 2

    127.0.0.1:6379> smembers set1

    1) "b"

    2) "c"

    3) "e"

    删除两个元素

     

    sismember key member

    判断某个元素是否存在 返回1 表示存在 返回0表示不存在

    127.0.0.1:6379> sismember set1 a

    (integer) 0

    127.0.0.1:6379> sismember set1 b

    (integer) 1

     

    sdiff计算差集

    127.0.0.1:6379> sadd set2 a b c

    (integer) 3

    127.0.0.1:6379> sadd set3 b c d e

    (integer) 4

    127.0.0.1:6379> sdiff set2 set3

    1) "a"

    127.0.0.1:6379> sdiff set3 set2

    1) "d"

    2) "e"

    我们发现 集合的顺序不同 结果不一样 根据前者参考

     

    sinter计算交集

    127.0.0.1:6379> sinter set2 set3

    1) "c"

    2) "b"

     

    sunion计算并集

    127.0.0.1:6379> sunion set2 set3

    1) "e"

    2) "a"

    3) "b"

    4) "c"

    5) "d"

     

    scard计算元素总数

    127.0.0.1:6379> smembers set1

    1) "b"

    2) "c"

    3) "e"

    127.0.0.1:6379> scard set1

    (integer) 3

     

    srandmember 随机取一个元素

    127.0.0.1:6379> srandmember set1

    "c"

    127.0.0.1:6379> srandmember set1

    "e"

     

    sdiffstore 把差集结果存储到新集合中

    127.0.0.1:6379> smembers set2

    1) "c"

    2) "b"

    3) "a"

    127.0.0.1:6379> smembers set3

    1) "c"

    2) "e"

    3) "d"

    4) "b"

    127.0.0.1:6379> sdiffstore r1 set2 set3

    (integer) 1

    127.0.0.1:6379> smembers r1

    1) "a"

     

    sinterstore 把交集结果存储到新集合中

    127.0.0.1:6379> sinterstore r2 set2 set3

    (integer) 2

    127.0.0.1:6379> smembers r2

    1) "c"

    2) "b"

     

    sunionstore把并集结果存储到新集合中

    127.0.0.1:6379> sunionstore r3 set2 set3

    (integer) 5

    127.0.0.1:6379> smembers r3

    1) "e"

    2) "a"

    3) "b"

    4) "c"

    5) "d"

     

    存储Set使用场景

     跟踪一些唯一性数据

     用于维护数据对象之间的关联关系

  • 相关阅读:
    pythonsys.exit()
    Python字符串格式化
    Json概述以及python对json的相关操作
    python学习笔记——异常
    Python:sys.argv[]用法
    python学习笔记——字符串,列表,字典,集合,数值,sorted
    python class 的属性
    Python模块——unittest 单元测试
    从sql2000 复制数据到sql2005
    abstract、virtual及override
  • 原文地址:https://www.cnblogs.com/wqsbk/p/8571799.html
Copyright © 2020-2023  润新知