Redis_集合_有序集合操作_1|学习笔记

简介: 快速学习 Redis_集合_有序集合操作_1

开发者学堂课程【Redis 数据库入门Redis_集合_有序集合操作_1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/15/detail/52


Redis_集合_有序集合操作_1


内容介绍:

一、Set 集合

二、命令

三、Set 的集合操作

四、SortedSet 有序集合


Redis 里面有些数据结构,像字符串类型的(strings)、hash、集合(sets)、有序集合(sorted sets)


一、Set集合

1.无序的、去重的

2.元素是字符串类型

3.最多包含2^32-1元素

4.增加一个或多个元素

⑴SADD key member [member…]

⑵如果元素已经存在,则自动忽略

所有关于 set 设置的前面都是s。

举例:

SADD friends peter

SADD friends jack tom john 

SADD friends may tom

我们来写一个,SADD friends peter,type friends 得出类型是 set;再输入SADD friends jack tom john,如果我们再输入 SADD friends may tom,tom 就重复了,我们看看会不会去重,得出只加进一个元素。

image.png

5.移除一个或多个元素

(1)SREM key member [member…]

(2)元素不存在,自动忽略

举例:

SREM friends peter

SREM friends tom john

删除某个键里面的元素,比如删除 tom


二、命令

1.返回集合包含的所有元素

⑴SMEMBERS key

我们来看一下 tom 有没有被删除,显示的是0表示没有删除,我们再重复一下刚才的操作,再输入 SMEMBERS friends,结果显示 tom 被移除。

image.png

⑵如果集合元素过多,例如百万个,需要遍历,可能会造成服务器阻塞,生产环境应避免使用

2.检查给定元素是否存在于集合中

SISMEMBER key member

比如说,还是看 tom 存不存在,再看 may 存不存在。

3.集合的无序性

SADD friends "peter" "jack tom" "john" "may" "ben"

SADD anotherfriends "peter" "jack" "tom" "john" "may" "ben"

SMEMBERS friends

SMEMBERS anotherfriends

注意,SMEMBERS 有可能返回不同的结果,所以,如果需要存储有序且不重复的数据使用有序集合,存储有序可重复的使用列表

4.随机返回集合中指定个数的

⑴SRANDMEMBER key [count]

⑵如果 count 为正数,且小于集合基数,那么命令返回一个包含count个元素的数组,数组中的元素各不相同。如果count大于等于集合基数,那么返回整个集合

⑶如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为count 的绝对值

⑷如果 count 为0,返回空

⑸如果 count  不指定,随机返回一个元素

举例:

SADD friend "peter""jack" "tom""john""may" "ben"

SRANDMEMBER friends 3

SRANDMEMBER friends -5

5.返回集合中元素的个数

SCARD key

键的结果会保存信息,集合长度就记录在里面,所以不需要遍历

6.随机从集合中移除并返回这个被移除的元素

SPOP key

7.把元素从源集合移动到目标集合

SMOVE source destination member


三、Set的集合操作

1.差集

SDIFF key [key ...],从第一个key的集合中去除其他集合和自己的交集部分

image.png

SDIFFSTORE destination key [key ...],将差集结果存储在目标 key 中

举例:

SADD number1 123 456 789      

SADD number1 123 456 999

SDIFF number1 number2

我们来试验一下,将上面的内容输入进去,最后显示差集是789

2.交集

SINTER key [key ...],取所有集合交集部分

image.png

SINTERSTORE destination key [key ...],将交集结果存储在目标 key中

举例:

SADD number1 123 456 789

SADD number2 123 456 999

SINTER number1 number2

3.并集

⑴SUNION key [key…],取所有集合并集

image.png

⑵SUNIONSTORE destination key [key…],将并集结果存储在目标 key 中

举例:

新浪微博的共同关注

需求:当用户访问另一个用户的时候,会显示出两个用户共同关注哪些相同的用户

设计:将每个用户关注的用户放在集合中,求交集即可

实现如下︰

peter={'john', 'jack ', 'may'}

ben={'john', 'jack', 'tom'}

那么 peter 和 ben 的共同关注为∶

SINTER peter ben 结果为{'john', 'jack'}

我们接下来看 SortedSet 有序集合。


四、SortedSet 有序集合

1.类似 Set 集合

2.有序的、去重的

3.元素是字符串类型

4.每一个元素都关联着一个浮点数分值( Score ),并按照分值从小到大的顺序排列集合中的元素。分值可以相同

5.最多包含2^32-1元素

相关文章
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
504 5
|
存储 NoSQL 关系型数据库
Redis 集合(Set)
10月更文挑战第17天
134 5
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
1794 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
1425 3
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
216 3
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
156 3
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
338 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
消息中间件 分布式计算 NoSQL
大数据-41 Redis 类型集合(2) bitmap位操作 geohash空间计算 stream持久化消息队列 Z阶曲线 Base32编码
大数据-41 Redis 类型集合(2) bitmap位操作 geohash空间计算 stream持久化消息队列 Z阶曲线 Base32编码
157 2
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
1402 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
|
存储 NoSQL Redis
6)深度解密 Redis 的集合(Set)
6)深度解密 Redis 的集合(Set)
208 1