当前位置: 首页 > article >正文

Redis-集合(Set)

Redis集合(Set)

  • Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的

  • Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1),一个算法,随着数据的增加,执行时间的长短,如果是O(1),数据增加,查找数据的时间不变

常用命令

  • 将一个或多个 member 元素加入到集合 key 中,已经存在的 member 元素将被忽略

    sadd key <member1> <member2> <member3>
    
  • 获取set中的所有元素

    smembers key
    
  • 判断集合key中是否存在某个value值,有1无0

    sismember <key> <value>
    
  • 返回集合中的元素个数

    scard key
    
  • 删除集合中的一个或多个元素

    srem key value1 value2 ...
    
  • 从集合中随机弹出一个值

    spop key
    
  • 随机从集合中取出n个值,不会删除

    srandmember key n
    
  • 将集合中的一个值移动到另一个集合

    smove <source> <targetSet> value
    
  • 获取两个集合的交集部分

    sinter <key1> <key2>
    
  • 获取两个集合的并集部分

    sunion <key1> <key2>
    
  • 获取两个集合的差集部分

    sdiff <key1> <key2>
    

数据结构

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

http://www.kler.cn/a/17110.html

相关文章:

  • 一键生成本地SSL证书:打造HTTPS安全环境
  • Linux screen和cscope工具使用总结
  • Oracle ADB 导入 BANK_GRAPH 的学习数据
  • HTTP协议基础
  • qt QProcess详解
  • C++ 数组与结构 编程练习
  • 总结838
  • Java 中的异常处理机制是什么(十)
  • redis 持久化 RDB + AOF
  • 多城市门店店铺展示地图导航pc/h5系统开发
  • Packet Tracer - 研究直连路由
  • 第十五章 角色移动旋转实例
  • ubuntu16.04升级到20.04后报错 By not providing “FindEigen.cmake“
  • 超细Redis(一)
  • MySQL 一条SQL语句是如何执行的?
  • JVM调优入门指南:掌握步骤、参数和场景
  • 【前端面经】浏览器-http和https的区别及优缺点?
  • TensorRT:自定义插件学习与实践 002:实现GELU
  • MyBatis详细笔记
  • Java I/O
  • 【前端面经】JS-深浅拷贝
  • 4. 嵌入式基础
  • 唱作音乐人朱卫明新歌全网首发,当初恋遇到《龙仙街》
  • 留守儿童爱心网站
  • JSP+SQL基于JSP的学生信息管理系统(源代码+论文+答辩PPT)
  • 操作系统原理 —— 调度的概念、层次(十一)