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

Set类型

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

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

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

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

SortedSet类型

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

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

相关推荐
huaweichenai4 分钟前
spring boot实现base64上传
java·spring boot·后端
萧瑟余晖9 分钟前
Spring Web综合实战与性能调优详解
java·spring
点纭9 分钟前
spring ai1.0实战:ChatClient(2)
java·后端·spring
前端 贾公子11 分钟前
LangGraph == 图的状态(State)管理 (下)
运维·服务器·数据库
小马过河R14 分钟前
EdgeOne深度解析:从原理、适用场景到COS接入的技术逻辑
java·开发语言·前端·spring·cos
zlwool21 分钟前
机械行业ERP与进销存的合规选型边界
数据库·erp
梦想的颜色26 分钟前
【AI速览】RAG 向量数据库选型:Milvus、Chroma、Qdrant、PGVector 全维度横向对比
数据库·milvus·chroma·rag·pgvector·向量库·qdrant
java水泥工34 分钟前
什么是前端
java·vue·html5
小溪学编程42 分钟前
向量数据库 Milvus 基础实践:从入门到上手
数据库·milvus
geovindu1 小时前
rust: pool Pattern
开发语言·后端·设计模式·rust·对象池简写模式