Redis基本数据类型(5)-----Zset
目录
1 简单介绍
Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员变量都关联了一个评分(score),这个评分被用来按照从最高分的方式排序集合中的成员。集合中的成员是唯一的,但是评分是可以重复的。
因为元素是有序的,所以可以很快的根据评分或者次序来获得一个范围内的元素
2 常用命令
zadd<key><score1><value1><score2><value2> 将一个或多个member元素以及score值加入到有序集合key值。
zrange<key> <start><stop> [withscores] 返回有序集合key中,下标在<start><stop>之间的元素,带withscores,可以让分数和值一起返回到结果集
zrangebyscore key minmax [withscores] 返回有序集合key中,所有分数介于min和max之间有序集之间按照分数递增
zrevrangebyscore key maxmin [withscores] 返回有序集合key中,所有分数按照从大到小排列
zincrby <key> <increment> <value> 为元素score加上增量
zrem <key> <value> 删除该集合下,指定值的元素
zcount<key><min><max> 统计该集合下,分数区间内元素个数
zrank<key><value>返回该值在集合中的排名,从0开始
3. 数据结构
SortedSet(zset)是Redis提供的一个非常特别的数据结构,一方面它等价于Java的数据结构Map<String,Double>,可以给每一个元素附一个权重score,另外一方面它又类似于TreeSet,内部的元素会按照权重score进行排序,可以得到每个元素的名词,还可以根据score来取元素的列表
zset底层使用了两个数据结构
(1) hash的作用就是关联元素value和权重score,保障元素value的唯一性,可以通过元素value找到相应的score值
(2) 跳跃表,跳跃表的目的在于给元素value排序,根据score的范围获取元素列表
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库