Redis基础(4):Set类型和SortedSet类型

Set类型

RedisSet类型和Java中的HashSet类似,可以看作是一个ValuenullHashMap。因为其也是一个Hash表,所以说具备和HashSet相似的特征:元素无序存储、元素不可重复、查找效率高、支持交、并、差集等集合运算

上图是Set类型的常用命令,是基本的命令,只涉及到单个Set的操作

这张图是Set之间的运算命令,也就是不同Set进行集合运算的命令,集合之间的运算关系如图所示:

图中两个Set的并集(SUNION)是A、B、C、D需要注意的是Set中的元素是不可以重复的,在单个Set操作时,如果Sadd的元素重复将插入失败;在Set间进行运算时,会自动去重。

SortedSet类型

RedisSortedSet是一个可排序的Set集合,和Java中的TreeSet类似,但底层的数据结构差别很大SortedSet中的每一个元素都带有一个Score属性,可以基于Score属性对元素进行排序 ,其底层的是实现是一个跳表(SkipList)加一个Hash表SortedSet具备这些特性:元素之间可排序、元素之间不重复、查询效率高 ,由于SortedSet天生自带可排序的特性,所以说经常用于实现排行榜这样的功能。

上图是SrotedSet的常用命令,在使用SortedSet类型的时候需要注意:每一个元素都需要一个Score属性,而Score属性也正是SortedSet用于排序的依据 。并且SortedSet在排序时默认是升序排列的 ,如果想要获取降序排列的结果,可以在命令开头的Z后面添加REV(Reverse)来代表降序排列。在使用SortedSet时需要注意到底是需要获取分数区间的元素个数 还是要获取分数区间的具体元素

相关推荐
SilentSamsara13 小时前
向量数据库实战:Chroma/Milvus/Qdrant 选型与语义搜索应用
开发语言·数据库·人工智能·python·青少年编程·milvus
重生之我是Java开发战士13 小时前
【Java SE】多线程(三):单例模式,阻塞队列,线程池与定时器
java·javascript·单例模式
AI人工智能+电脑小能手13 小时前
【大白话说Java面试题 第115题】【并发篇】第15题:说一下悲观锁和乐观锁的区别?
java·开发语言·面试
沪漂阿龙14 小时前
LangChain 系列之Agent:从固定流程到模型自主决策
服务器·数据库·langchain
心之伊始14 小时前
Spring Boot Actuator + Micrometer 实战:自定义业务指标并接入 Prometheus 观测接口耗时
java·spring boot·prometheus·actuator·micrometer
Full Stack Developme14 小时前
Spring Integration 教程
java·后端·spring
爱勇宝14 小时前
AI 时代,前端工程师的话语权正在下降?
前端·后端
kymjs张涛14 小时前
一个月,纯VibeCoding,全平台云笔记APP
前端·javascript·后端
zh_xuan14 小时前
PC端操作SQLite数据库
数据库·c++·sqlite
摇滚侠14 小时前
MyBatis 入门到项目实战 MyBatis 分页插件 65-66
java·开发语言·sql·mybatis