• redis学习笔记(4)set集合


    1、概述

    • Redis set 对外提供的功能与 list 类似,是一个列表的功能,特殊之处在于 set 是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set 是一个很好的选择,并且 set 提供了判断某个成员是否在一个 set 集合内的重要接口,这个也是 list 所不能提供的。
    • Redis 的 Set 是 string 类型的无序集合。它底层其实是一个 value 为 null 的 hash 表,所以添加,删除,查找的时空复杂度都是 O (1)。
    • 一个算法,随着数据的增加,执行时间的长短,如果是 O (1),数据增加,查找数据的时间不变。

    2、相关操作

    • sadd key member1 [member2…]-------------向集合添加一个或多个元素,返回成功添加个数
    • scard key--------------获取集合的元素个数
    • smembers key------------返回集合所有元素
    • srandmember key [count]--------------返回集合中一个或多个随机数
    • sscan key cursor[MATCH pattern] [COUNT count]-------------迭代集合中的元素
    • sismember key member---------------判断member元素是否在集合key中,返回integer,1-存在,0-不存在
    • sdiff key1 [key2…]---------------返回给定所有集合差集,如果只给一个key将列出所有集合元素
    • sdiffstore destination key1 [key2…]-------------返回给定所有集合差集,并将差集存储在destination中
    • sinter key1 [key2…]-------------返回给定所有集合交集
    • sinterstore distination key1 [key2…]----------------返回给定所有集合交集,并将交集存储在destination中
    • sunion key1 [key2…]---------------返回所有给定集合的并集
    • sunionstore destination key1 [key2…]-------------------返回给定所有集合并集,并将并集存储在destination中
    • srem key member1 [member2…]-------------移除集合中一个或多个元素,返回移除成功个数
    • spop key---------------返回并移除集合中的一个随机元素

    3、数据结构

    • Set 数据结构是 dict 字典,字典是用哈希表实现的。
    • Java 中 HashSet 的内部实现使用的是 HashMap,只不过所有的 value 都指向同一个对象。Redis 的 set 结构也是一样,它的内部也使用 hash 结构,所有的 value 都指向同一个内部值。

    参考:Redis | ZC 的学习录 (zhangc233.github.io)

    参考:(29条消息) redis key操作大全_IT_faquir的博客-CSDN博客_redis获取key对应的值

  • 相关阅读:
    Java 日志
    编写用例文档
    uml用例关系
    地址线和数据线
    Android总结
    DbUtil数据库连接
    PropertiesUtil
    log4j.properties配置
    自定义博客样式
    css给文字加下划线
  • 原文地址:https://www.cnblogs.com/mango1997/p/16210367.html
Copyright © 2020-2023  润新知