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

Redis Set集合操作全解析

Set集合

集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中的元素之间是无序的,不允许重复。

普通命令

SADD

将一个或者多个元素添加到set中。注意,重复的元素无法添加到set中

语法:

SADD key member [member ...]

时间复杂度:O(1)

举个例子:

SMEMBERS

获取一个set中的所有的元素,注意,元素之间的顺序是无须的

语法:

SMEMBERS key

时间复杂度:O(N)

返回值:所有元素的列表

SISMEMBER

判断一个元素在不在set中

语法:

SISMEMBER key member

时间复杂度:O(1)

返回值:1表示元素在set中。0表示元素不在set中或者key不存在

举个例子:

SCARD

获取一个set的基数,即se中元素的个数

语法:

SCARD key

返回值:set内的元素的个数

举个例子:

SPOP

从set中删除并返回一个或者多个元素。注意,由于set中的元素的无需的,所有取出哪个元素实际上是未定义的行为,也就是随机的

语法:

SPOP key [count]

时间复杂度:O(N),N是count

返回值:取出的元素

举个例子:

SMOVE

将一个元素从原set放到目标set中

语法:

SMOVE source destination member

时间复杂度:O(1)

返回值:1表示成功,0表示失败

举个例子:

SREM

将制定的元素从set中删除

语法:

SREM key member [member ...]

时间复杂度:O(N),N是要删除的元素的个数

返回值:本次操作删除的元素的个数

举个例子:

集合间操作

交集、并集、差集的概念

SINTER

获取给定的set的交集中的元素

语法:

SINTER key [key ...]

时间复杂度:O(N*M),N是最小的集合元素个数,M是最大的集合元素个数

返回值:交集的元素

举个例子:

SINTERSTORE

获取给定set的交集中的元素保存到目标set中

语法:

SINTERSTORE destination key [key ...]

时间复杂度:O(N*M),N是最小的集合元素个数,M是最大的集合元素个数

返回值:交集的元素个数

SUNION

获取给定set的并集中的元素

语法:

SUNION key [key ...]

时间复杂度:O(N),N给定的所有集合的总的元素个数

返回值:并集的元素

SUNIONSTORE

获取给定set的并集中的元素并保存到目标set中

语法:

SUNIONSTORE destination key [key ...]

时间复杂度:O(N),N给定的所有集合中的总得元素个数

返回值:并集的元素的个数

举个例子:

SDIFF

获取给定set的差集中的元素

语法:

SDIFF key [key ...]

时间复杂度:O(N),N给定的所有集合的总得元素的个数

返回值:差集的元素

举个例子:

SDIFFSTORE

获取给定set的差集中的元素并保存到目标set中

语法:

SDIFFSTORE destination key [key ...]

时间复杂度:O(N),N给定的所有集合的总得元素的个数

返回值:差集的元素个数

举个例子:

命令小结

内部编码

集合类型的内部编码有两种

  • intset(整数集合):当集合中的元素都是整数,并且元素的个数小于set-max-intset-entries配置时,Redis会选用intset来作为集合的内部实现,从而减少内存的使用
  • hashtable(哈希表):当集合类型无法满足intset的条件时,Redis会使用hashtable作为集合的内部实现

使用场景

集合类型比较典型的场景就是标签。例如A用户对娱乐、体育板块比较感兴趣,B用户对历史、新闻比较感兴趣,这些兴趣点可以抽象为标签。有了这些数据就可以得到喜欢同一个标签的人,以及用户的共同喜好的标签,这些数据对于增强用户体验和用户粘度都非常的有帮助。

http://www.dtcms.com/a/411333.html

相关文章:

  • 新东阳建设集团网站2018做网站还是app
  • 大模型之bert细节
  • 网站注册费计入什么科目人力资源公司注册条件
  • 智能制造浪潮下,AR技术重塑工业维护新范式
  • 站长网站工具广州游戏网站建设
  • 网站建设h5是指的那一块建站宝盒的设置
  • 深圳营销型网站制作建设北京网页设计与制作公司
  • 网站建设费用找团队做网站
  • Amazon Textract 文档信息提取实践:从概念到实战
  • 公司网站推广计划书出口外贸网站
  • 学习React-17-useMemo
  • 【开题答辩过程】以《宠物犬食品的数据分析与推荐系统》为例,不会开题答辩的可以进来看看
  • wordpress建电商网站wordpress 分页文章数
  • Vue3 新项目架构简单解析
  • 网站建设加网络营销上传的网站打不开怎么办
  • 南京网站建设公司哪家好seo专业课程
  • 网线制作工具seo报告
  • Python写入PostgreSQL表的三种实现方法
  • 聊聊UI自动化测试有哪些优势
  • 想自己做网站推广淘宝做动效代码的网站
  • 做一个能注册用户的网站空间设计师工资一般多少
  • 【精品资料鉴赏】解读145页 PPT汽车集团数字化转型互联网+顶层战略设计方案
  • 环签名:AOS Borromean
  • 自适应平台(Adaptive Platform)标准——Specification of Time Synchronization
  • 制作网站的知识网站访客qq获取系统 报价
  • tcpdump 使用详解
  • 新余 网站建设公司上海黄浦网站建设
  • 数据采集技术:02 有关离线采集
  • 【SCI一区】模糊斜率熵 Fuzzy Slope Entropy+状态分类、故障诊断!
  • 品牌网站解决方案vr全景网站怎么做