【Redis】Set类型常用命令

news2024/11/26 16:41:09

目录

  • 一. Set集合类型简介.
  • 二. 增加元素相关命令
    • 2.1 向集合中添加元素(sadd)
    • 2.2 从集合中移动元素( smove )
  • 三. 查询元素相关操作.
    • 3.1 查询集合中存在的所有元素.( smembers )
    • 3.2 查询集合中是否存在member( sismember )
  • 四. 随机获取集合中的元素
    • 4.1 随机获取集合中的n个元素.(srandmember)
  • 五. 删除元素相关操作
    • 5.1 随机删除集合中的n个元素( spop )
    • 5.2 指定删除集合中的n个元素.(srem)
  • 六. 集合运算的相关操作.
    • 6.1 求集合交集的操作(sinter)--->直接返回交集的结果
    • 6.2 求集合交集的操作(sinterstore)---->将返回结果存储到另一个集合当中.
    • 6.3 求集合并集的操作(sunion)---->直接返回并集的结果
    • 6.4 求集合并集的操作(sunionstore)---->将返回结果存储到另一个集合当中
    • 6.5 求集合差集的操作(sdiff)--->直接返回差集的结果
    • 6.6 求集合差集的操作(sdiffstore)--->将返回结果存储到另一个集合当中

一. Set集合类型简介.

  • Redis中Set类型是一种集合数据结构, Set集合中存储的元素是不允许重复的.
  • Set类型的特征:
    1. 无序性: Set中的元素是无须的, 这意味着你不能通过索引来访问(每次查询同一个元素在Set集合中的位置都是不固定的)
    2. 唯一性: Set中的每个元素都是唯一的, 不允许有重复的元素.
    3. 动态性: 可以随时向Set中添加或者删除元素.
  • Redis底层的存储结构:
    1. intset(整数集合): 当一个Set集合只包含整数值元素,并且这些元素的个数不超过512个时,Redis会使用intset作为底层存储结构。intset内部实际上是一个数组,用于存储整数类型的数据。由于数组是有序的,因此在查找数据时可以通过二分查找法实现快速查询,时间复杂度接近O(log n)。
    2. 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是所有给定集合中元素的总数。

  • 演示命令的使用:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2204849.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW中的非阻塞定时器

在LabVIEW编程中,通常需要在某些任务执行过程中进行非阻塞的延时操作。例如,显示某条信息一段时间,同时继续执行其他任务,并在延时时间结束后停止显示该信息。这类需求通常用于处理优先级不同的信息显示,如错误信息需要…

2024双十一买啥最划算?四款必入的数码好物推荐!

随着2024年双十一购物狂欢节的临近,各大电商平台纷纷推出了一系列令人期待的优惠活动,这无疑是一年中最佳的采购时机。对于追求科技潮流与实用主义的消费者而言,选择在这个时候入手心仪已久的数码产品无疑是明智之举。为了帮助大家抓住这波促…

Windows系统操作技巧

文章目录 I 打开‌任务管理器II Windows的run功能常用命令RDP协议的远程连接I 打开‌任务管理器 ‌通过快捷键打开‌任务管理器 ‌[Ctrl + Shift + Esc]:这是最常用的方法,直接按下这三个键即可快速打开任务管理器。‌Ctrl + Alt + Delete‌:按下这三个键后会弹出一个菜单,…

PostgreSQL数据库定期清理归档(pg_wal)日志

一、配置归档模式 在postgresql.conf文件中设置archive_mode on来启用归档功能。 二、设置归档命令 同样在postgresql.conf中,设置archive_command参数,指定一个shell命令来处理归档日志,例如: archive_command cp %p /home/…

中英文在线翻译工具大盘点

中英文在线翻译工具如同语言世界的桥梁,连接着两种不同的文化和语言体系。接下来,让我们一同走进这个精彩纷呈的中英文在线翻译工具集锦,探寻它们的奥秘与魅力。 1.福昕在线翻译 链接直达>>https://fanyi.pdf365.cn/doc 这款在线翻…

Git的基本使用入门

参考:Git速查 git的基本概念 git常用命令大部分是基于三大分区来执行的。先来了解一些专有名词吧。 工作区,也叫 Working Directory暂存区,也叫 stage,index版本库,也叫本地仓库,commit History 将代码推…

书店系统小程序的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,图书管理,论坛信息管理,用户管理,公告信息管理,基础数据管理 微信端账号功能包括:系统首页,论坛信息&…

(六)、CT中的滤光片

在X射线中衰减是吸收和散射的结果。X射线可以由于光电效应而衰减,也可以由于康普顿效应而衰减和散射。长波长X射线对CT图像形成的贡献不显著,但会增加患者的剂量,总体的来讲就是要保留穿透能力强的X光。 光电效应是指当光子与物质中的原子相互…

springboot宠物托管平台-计算机毕业设计源码82186

摘要 随着人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。然而,由于工作、旅行等原因,宠物主人在某些时候可能无法亲自照顾宠物,因此宠物托管服务应运而生。本文旨在设计并实现一个基于Spring Boot框架的宠物托管平台&a…

YOLOv8模型改进 第六讲 添加多尺度卷积注意力模块(MSCAM)

在计算机视觉领域,目标检测的准确性和效率是研究的热点之一。YOLOv8 作为最新一代的实时目标检测模型,已经在多个基准数据集上展示了其优越的性能。然而,随着数据集和应用场景的复杂性增加,如何进一步提升模型的检测精度和鲁棒性仍…

Kafka之基本概念

1、Kafka是什么? Kafka是由Scala语言开发的一个多分区、多副本,基于Zookeeper集群协调的系统。 那这个所谓的系统又是什么系统呢? 回答这个问题要从发展的角度来看:起初Kafka的定位是分布式消息系统。但是目前它的定位是一个分布…

用户代理样式表:你真的了解它吗?

引言 作为一名前端开发者,你是否曾经遇到过这样的情况:明明CSS代码写得一模一样,但是在不同的浏览器上呈现出的效果却大相径庭?这背后的原因,很大程度上要归结于所谓的“用户代理样式表”。 用户代理样式表&#xff…

TY1801 内置GaN电源芯片(18w-65w)

TY1801 是一款针对离线式反激变换器的多模式 PWM GaN 功率开关。TY1801内置 GaN 功率管,具备超宽 的 VCC 工作范围,非常适用于 PD 快充等要求宽输出电压的应用场合,TY1801不需要使用额外的绕组或外围降压电路,节省系统 BOM 成本。TY1801 支持 Burst&…

iPhone16销量不佳?海外机构给出否定答案,让国产手机失望了

在国内媒体都喜欢宣传iPhone16销量不佳,苹果又慌了等诸多对苹果不利的消息,不过日前海外分析机构却给出了不一样的答案,认为iPhone16的销量超过了去年的iPhone15,显然与国内媒体的宣传很不一样。 海外分析机构的数据是整理了iPhon…

【拥抱AIGC】应该如何衡量AI辅助编程带来的收益

本文主要介绍了如何度量研发效能,以及AI辅助编程是如何影响效能的,进而阐述如何衡量AI辅助编程带来的收益。 理解度量:有效区分度量指标 为了帮助研发团队更好地理解和度量研发效能,可以将指标分为三类:能力和行为指…

Python异常处理详解:try, except, else, finally的使用方法与示例

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

PRAI-International Journal of Pattern Recognition and Artificial Intelligence

文章目录 一、征稿简介二、重要信息三、服务简述四、投稿须知五、联系咨询 一、征稿简介 二、重要信息 期刊官网:https://ais.cn/u/3eEJNv 三、服务简述 模式识别 • 机器学习 • 深度学习 • 文件分析 • 图像处理 • 信号处理 • 计算机视觉 • 生物识别技术 •…

Windows电脑本地安装AI文生音乐软件结合内网穿透远程访问制作

文章目录 前言1. 本地部署2. 使用方法介绍3. 内网穿透工具下载安装4. 配置公网地址5. 配置固定公网地址 前言 今天和大家分享一下在Windows系统电脑上本地快速部署一个文字生成音乐的AI创作服务MusicGPT,并结合cpolar内网穿透工具实现随时随地远程访问使用进行AI音…

上课了!老谭带你学习Ascend C,深入浅出,轻松掌握~

昇腾社区课程学习入口: Ascend C算子开发(入门)https://www.hiascend.com/developer/courses/detail/1691696509765107713Ascend C算子开发(进阶)https://www.hiascend.com/zh/developer/courses/detail/169641460679…

找出n个自然数(1,2,3,……,n)中取r个数的组合。

题目:找出n个自然数(1,2,3,……,n)中取r个数的组合。例如,当n5,r3时,所有的组合为: 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5 首先,找到…