数据类型-set 类型介绍与基本操作| 学习笔记

简介: 快速学习数据类型-set 类型介绍与基本操作

开发者学堂课程【Redis 入门到精通(基础篇)数据类型-set 类型介绍与基本操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/764/detail/13384


数据类型-set 类型介绍与基本操作

 

内容介绍

一、set 类型

二、Set 类型数据的基本操作

 

一、set 类型

●新的存储需求:存储大量的数据,在查询方面提供更高的效率

●需要的存储结构:能够保存大量的数据,高效的内部存储机制,便于查询

●set类型:与hash存储结构完全相同,仅存储键,不存储值(nil),并且值是不允许重复的

前面已经完成了三个类型的学习,接下来进行set类型的学习,存储大量的数据,在查询方面提供更高的效率,为什么这么说呢,前面的list难道不能满足这个需求吗?

List可以存储大量数据,还有存储顺序,能用对应的索引访问,看上去非常好,但是内部存储结果很鸡肋,是一个链表的结构,链表的存储效率是很低的,那么如果存储大量数据,读取速度满,就有点违背存储初衷,于是就需要全新的模型。

全新的模型要求能够存储大量数据,内部存储机制便于查询,高效查询,这时就想到了前面的一个存储结构,hash,hash的存储结构是左边一列表头,是field,右边一列是真实的数据,

但是这里面有一个坑,我们用的是右边的数据,而左边是名字,如果说就是我的数据,也不是不可以,所以进行一个变形,右边全部放空,左边的名字就是我的数据,这样首先就能存储大量数据,内部结构是hash表,hash表的存储效率是非常高的,于是就在左边变一下形,左边存value,这就是我们要的模型,就是set,

image.png

也就是说,set 存储空间不是一个全新的模型,而是通过hash变形来的,与hash的结构完全相同,仅使用右边键的部分,也就是field部分,这样就得到了一个全新的结构,这个结构数据是不允许重复的,跟之前一样,如果重复的话会覆盖,左边key 对右边这一堆,右边用原来hash的名称这一部分做了存储空间,这就是新的存储结构。

image.png


二、Set 类型数据的基本操作

添加数据

sadd key member1 [member2]

获取全部数据

smembers key

删除数据

Srem key member1 [member2]

获取集合数据总量

Scard key

判断集合中是否包含指定数据

sismember key member

由于set不想list那样分左右,它里面hash结构,也没有索引,所以操作相对简单,直接操作,sadd users zs,然后回车,添加成功,然后继续添加,sadd users ls,sadd users ww,然后smembers users,查看数据,接下来删除数据,srem users ww,然后在重新查看,smembers users,查看数据。

通过前后查看比对,前后查询并不是我们添加的数据顺序,删除后顺序没有改变,典型的hash结构。

继续操作,scard users,得到数据的数量,然后查询指定数据,sismember users zs,查询结束,存在数据,sismember users ww,返回integer 0,查询失败。

相关文章
|
12天前
|
存储 Java 开发者
Java 中 Set 类型的使用方法
【10月更文挑战第30天】Java中的`Set`类型提供了丰富的操作方法来处理不重复的元素集合,开发者可以根据具体的需求选择合适的`Set`实现类,并灵活运用各种方法来实现对集合的操作和处理。
|
12天前
|
开发者
除了交集运算,Set 类型还可以用于哪些数据结构的操作?
【10月更文挑战第30天】`Set`类型在数据结构操作方面提供了丰富的功能和便利,能够帮助开发者更高效地处理各种数据集合相关的任务,提高代码的简洁性和性能。
|
12天前
|
JavaScript 前端开发 开发者
set类型可以实现数组去重等
【10月更文挑战第30天】 `Set`类型在JavaScript中提供了一种方便、高效的集合数据结构,在数组去重、集合运算、数据存在性检查等方面都有广泛的应用,能够帮助开发者更简洁、高效地处理数据。
|
12天前
|
JavaScript 前端开发 Java
除了 JavaScript,还有哪些编程语言支持 Set 类型
【10月更文挑战第30天】这些编程语言中的 `Set` 类型虽然在语法和具体实现细节上有所不同,但都提供了类似的集合操作功能,方便开发者在不同的编程场景中处理集合相关的数据和逻辑。
|
12天前
|
算法 JavaScript 前端开发
使用 Set 类型实现数组的交集运算
【10月更文挑战第30天】使用 `Set` 类型实现数组的交集运算是一种常见且有效的方法,它为我们处理数据集合的运算提供了一种便捷的途径。通过合理地运用这种方法,我们可以轻松地实现数组的交集计算,并在各种编程任务中灵活运用。
|
30天前
|
存储 NoSQL Redis
redis-set类型
【10月更文挑战第6天】
36 1
|
1月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
27 3
|
2月前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
3月前
|
索引 Python 容器
为什么Python中会有集合set类型?
为什么Python中会有集合set类型?
|
3月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。

热门文章

最新文章