【地铁上的Redis与C#】数据类型(八)--set类型基本操作

news2024/11/15 11:11:40

这篇文章,我们开始学习set类型,学习set类型前我们先来看一下List类型有什么缺点。

List的缺点

当需要存储大量数据并且要提供高效率的查询时,List是无法完全实现的,这是因为list的存储结构是链表的形式,链表读取数据的效率是很低的,因此我们需要的存储结构就必须具备能够保存大量的数据,并且具有高效的内部存储机制,便于快速查询数据。这时我们一定就想到了hash类型,但是hash类型只是基本符合要求,我们知道hash类型是以key-value的形式存储的,那么我们可以说key也是数据,因此我们可以将key作为value来存储,而原本的value则设置为nil,这样我们就得到了本篇所讲的set类型,set类型是从hash类型言表而来的,因此set类型和hash类型具有相同的存储结果,但是数据仅存储在key(value)中。它的存储结构如下图所示:
在这里插入图片描述

Tip:set类型的值不允许重复

set类型基本操作

  1. 添加
    假设我们有一个set类型的students集合,需要向里面添加一条或多条数据时,我们可以使用 sadd指令,语法是这样的sadd key member_1…member_n,例如向students中添加Anna,指令可以这么写sadd students Anna
  2. 获取全部数据
    当我们要从students集合中获取全部学生时,可以使用 smembers指令,语法是这样的smembers key,查看全部选择可以这么写指令smembers students
  3. 删除数据
    当一个学生转学后,就要从students集合中删除,这时我们可以使用srem,语法是这样的srem key member_1…member_n,例如要删除Jack这个学生,指令可以这么编写srem students Jack
  4. 获取集合数据总数
    当我们需要获取学生的总数时,可以使用scard指令,语法是这样的scard key,获取学生数量的指令是这样的scard students
  5. 判断集合中是否包含指定的数据
    在我们向students集合中插入数据前需要判断该数据是否存在于集合中,这是我们可以使用sismember指令,语法是这样的sismember key member,例如判断Tom是否存在于students中,指令可以这么编写sismember students Tom

小结

本篇文章主要讲解了List的缺点,以及Set的存储结构和set的基本操作指令。

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

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

相关文章

Leetcode力扣秋招刷题路-0114

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 114. 二叉树展开为链表(Mid) 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中…

Linux- 系统随你玩之--文本、字符串处理摸金校尉--RE

文章目录1、前言2、正则表达式2.1、 概述2.2、 特点2.3、正则表达式-测试工具3、知识点3.1、 正则表达式定义3.2、 正则表达式的组成3.3、正则表达式语法支持情况4、速记理解技巧4.1、基础正则表达式4.2、等价4.3、常用运算符与表达式4.4、分割语法4.4.1、例型4.4.2、例型语法与…

Java高手速成 | JSP MVC模式项目案例

MVC模式的核心思想是有效地组合“视图”“模型”和“控制器”。在JSP 技术中,视图是一个或多个JSP页面,其作用主要是向控制器提交必要的数据和为模型提供数据显示;模型是一个或多个Javabean对象,用于存储数据;控制器是…

LifeCycle源码解析

简介 Lifecycle是Jetpack中的一个生命周期组件,可用来感知其他组件(如Activity,Fragment)生命周期的变化,从而可以保证我们的一些代码操作控制在合理的生命周期内; 如何使用? 添加以下依赖 …

什么是接口、接口测试、接口自动化测试、你分的清楚吗?

目录 前言: 服务端接口测试介绍 什么是服务端? 什么是接口? 什么是接口测试? 为什么要做接口测试? 如何做接口测试? 接口测试自动化介绍 为什么是接口测试自动化? 为什么要做接口测试自…

什么是动态域名解析?域名怎么解析到内网IP

首先说说什么是域名解析,域名解析就是把域名解析成一个ip地址,我们大多数人都喜欢记忆域名,但是机器只认识IP地址,把这个IP地址对应相关域名,这就叫域名解析。动态域名与动态域名解析是相互关联的关系,通过…

项目图床选择

总结: 非隐私图片:使用Github、七牛云(http)、SM.MS图床、路过图床。隐私图片:使用阿里云OSS、七牛云(https)(绑定的域名不能丢)。 测试环境(日常使用)自行选择; 生产环境选择阿里云…

03_PyTorch 模型训练[Dataset 类读取数据集]

PyTorch 读取图片,主要是通过 Dataset 类,所以先简单了解一下 Dataset 类。Dataset 类作为所有的 datasets 的基类存在,所有的 datasets 都需要继承它,类似于 C中的虚基 类。这里重点看 getitem 函数,getitem 接收一个…

微信小程序使用canvas生成分享海报功能复盘

前言 近期需要开发一个微信小程序生成海报分享的功能。在h5一般都会直接采用 html2canvas 或者 dom2image 之类的库直接处理。但是由于小程序不具备传统意义的dom元素,所以也没有办法采用此类工具。 所以就只能一笔一笔的用 canvas 画出来了,下面对实现…

(文末有彩蛋,不看白不看)兑现一下之前答应读者的事

大家过年好呀!(我)明天就要开工上班啦!在假期的最后一天踢了会球,简单吃点东西,晚上来兑现答应一位读者的事情。开整! 前情提要 这篇文章缘起于「开发者」技术交流群中一位读者遇到的问题&…

《树上的男爵》坚持解释不清的理想是疏离,还是自由?

《树上的男爵》坚持解释不清的理想是疏离,还是自由? 伊塔洛卡尔维诺,意大利作家,后现代主义派。 卡尔维诺为“寓言式奇幻文学的大师”。(评论家赫伯特密特甘评) 吴正仪 译 许多年来,我为一些连我…

【3】SpringBoot基础

//从事微服务开发工作 SpringBoot提供一种快速使用Spring的方式 1、自动化 2、设置多个starter配置依赖比Maven直接管理更便捷 3、内置服务器 总结:自动配置,起步依赖,辅助功能 2.6.11版本的说明书 Spring Boot Reference Documentation…

第九层(8):STL之set/multiset

文章目录前情回顾set/multiset概念区别构造函数赋值函数大小操作函数交换函数插入函数删除函数查找函数统计函数为什么set不可以插入重复数据pair数组pair数组创建怎么样去改变set容器的排序规则下一座石碑🎉welcome🎉 ✒️博主介绍:一名大一…

智公网:一级消防师要掌握的知识点!

一、建筑物的耐火等级 1、建筑物的耐火等级分为四级,一、二、三、四级。 2、节点缝隙或金属承重构件节点的外露部位,应做防火保护层。 3、民用建筑的耐火等级、层数、长度和面积,一二级最大防火分区的长度250m。多层建筑最大允许建筑面积2…

【gcc/g++/gdb/cmake】命令

文章目录参考资料一、gcc/g/make1 gcc和g的区别2 gcc/g与make区别3 make与cmake区别二、开发环境搭建1 编译器,调试器,CMake安装2 GCC编译器2.1 编译过程2.1.1 -E 预处理-Pre-Processing .i文件2.1.2 -S 编译-Compiling .s文件2.1.3 -C 汇编-Assembling …

软件工程(二)——需求工程、统一建模语言UML

目录 一、需求获取 二、需求分析 1.结构化需求分析 2.面向对象分析方法OOA 三、UML 41视图 四、UML 图 (1)用例图 (2)类图、对象图 (3)顺序图 (4)活动图 (5)状态图 (6)通信图 软件需求指用户对系…

【科研】ET-BERT代码分析

0. 数据集 论文使用的TLS1.3数据集是从 2021 年 3 月到 2021 年 7 月在中国科技网 (CSTNET) 上收集的。 如果要使用自己的数据集的话,需要检查数据格式是否与datasets/cstnet-tls1.3/目录下一致,并且在data_process/目录下指定数据集路径。 用于微调的…

Pomotroid 使用指南:一款高颜值 PC 端番茄时钟

文章首发于个人公众号:「阿拉平平」 番茄工作法作为一套高效易行的时间管理方案,是由意大利人弗朗西斯科西里洛于 1992 年创立的。作者发明的初衷源自于自身严重的拖延症,于是他找来一个厨房用的番茄计时器,调到 10 分钟&#xff…

游戏SDK(二)框架设计

前言 根据上一篇游戏SDK(一) 客户端整体架构,介绍了游戏SDK 及 游戏SDK的需求分析。根据需求分析,对游戏SDK的设计分为3大块: 客户端:接口统一,做好逻辑转发和处理。具体渠道具体实现&#xf…

【高并发】- 生产级系统搭建 - 4

前言 关于高并发系统中,当前比较热门的还是属于“秒杀”系统,前面章节在整理了“秒杀”系统的相关设计概念后,本章节,来讲解扣减库存相关的业务逻辑。 1 库存的那些事 一般电商网站中,购买流程一般都是这样的&#xff…