【Redis】Set范例常用下令

打印 上一主题 下一主题

主题 833|帖子 833|积分 2499

一. Set集合范例简介.



  • Redis中Set范例是一种集合数据结构, Set集合中存储的元素是不答应重复的.
  • Set范例的特征:

    • 无序性: Set中的元素是无须的, 这意味着你不能通过索引来访问(每次查询同一个元素在Set集合中的位置都是不固定的)
    • 唯一性: Set中的每个元素都是唯一的, 不答应有重复的元素.
    • 动态性: 可以随时向Set中添加大概删除元素.

  • Redis底层的编码方式:

    • intset(整数集合): 当一个Set集合只包含整数值元素,并且这些元素的个数不高出512个时,Redis会使用intset作为底层存储结构。intset内部现实上是一个数组,用于存储整数范例的数据。由于数组是有序的,因此在查找数据时可以通过二分查找法实现快速查询,时间复杂度接近O(log n)。
    • hashtable(哈希表): 假如Set集合的元素不满是整数大概元素数目高出512个,Redis则会使用hashtable作为底层存储结构。在hashtable中,key为Set的值,value始终为null。这种设计使得Set能够高效地举行添加、删除和查找利用,由于哈希表的平均时间复杂度为O(1)。


二. 增长元素相关下令

2.1 向集合中添加元素(sadd)



  • 下令根本格式:
   SADD key member [member ...]
  

  • 时间复杂度
   O(N) N是member的元素个数, 一般可以近似看作是O(1)
  

  • 演示下令的使用:

2.2 从集合中移动元素( smove )



  • 下令根本格式:
   SMOVE source destination member
  

  • 时间复杂度
   O(1)
  

  • 演示下令的使用:

三. 查询元素相关利用.

3.1 查询集合中存在的全部元素.( smembers )



  • 下令根本格式:
   SMEMBERS key
  

  • 时间复杂度
   O(N) N为集合中元素的个数.
  

  • 演示下令的使用:

3.2 查询集合中是否存在member( sismember )



  • 下令根本格式:
   SISMEMBER key member
  

  • 时间复杂度
   O(1)
  

  • 演示下令的使用:

四. 随机获取集合中的元素

4.1 随机获取集合中的n个元素.(srandmember)



  • 下令根本格式:
   SRANDMEMBER key [count]
  

  • 时间复杂度
   O(N) N是count的值, 一般可以近似看作是O(1)
  

  • 演示下令的使用:

五. 删除元素相关利用

5.1 随机删除集合中的n个元素( spop )



  • 下令根本格式:
   SPOP key [count]
  

  • 时间复杂度
   O(N) N是count的值, 一般可以近似看作是O(1)
  

  • 演示下令的使用:

5.2 指定删除集合中的n个元素.(srem)



  • 下令根本格式:
   SREM key member [member ...]
  

  • 时间复杂度:
   O(N) N是要移除元素的个数, 一般可以近似看作是O(1)
  

  • 演示下令的使用:

六. 集合运算的相关利用.

6.1 求集合交集的利用(sinter)—>直接返回交集的结果



  • 下令根本格式:
   SINTER key [key ...]
  

  • 时间复杂度:
   O( N*M ) N表示这些集合当中最小集合的元素个数, M表示求交集的集合个数.
  6.2 求集合交集的利用(sinterstore)---->将返回结果存储到另一个集合当中.



  • 下令根本格式:
   SINTERSTORE destination key [key ...]
  

  • 时间复杂度:
   O( N*M ) N表示这些集合当中最小集合的元素个数, M表示求交集的集合个数.
  

  • 演示下令的使用:

6.3 求集归并集的利用(sunion)---->直接返回并集的结果



  • 下令根本格式:
   SUNION key [key ...]
  

  • 时间复杂度:
   O(N) 其中N是给定集合中全部元素的个数.
  6.4 求集归并集的利用(sunionstore)---->将返回结果存储到另一个集合当中



  • 下令根本格式:
   SUNIONSTORE destination key [key ...]
  

  • 时间复杂度:
   O(N) 其中N是给定集合中全部元素的个数.
  

  • 演示下令的使用:

6.5 求集合差集的利用(sdiff)—>直接返回差集的结果



  • 下令根本格式:
   SDIFF key [key ...]
  

  • 时间复杂度:
   O(N) 其中N是全部给定集合中元素的总数。
  6.6 求集合差集的利用(sdiffstore)—>将返回结果存储到另一个集合当中



  • 下令根本格式:
   SDIFFSTORE destination key [key ...]
  

  • 时间复杂度:
   O(N) 其中N是全部给定集合中元素的总数。
  

  • 演示下令的使用:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表