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对应的值

 

posted @ 2022-04-30 15:36  ☞@_@  阅读(46)  评论(0编辑  收藏  举报