Redis数据结构之有序集合

本文介绍了Redis中的有序集合,其特点在于元素不重复且可排序。有序集合通过分数进行排序,提供范围查询和成员排名功能。常用命令包括交集和并集计算,支持权重和分数汇总方式。内部编码有两种:压缩列表和跳跃表。该数据结构适用于实现排行榜系统等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

有序集合中的元素不重复,但是可以排序,和列表所用索引下标不同,它给每个元素设置一个分数作为排序的依据,有序集合提供了获取指定分数和元素范围查询、计算成员排名等功能

常用命令介绍
命令命令描述
zadd key score member [score member....]添加成员,附加nx xx ch incr四个选项
zcard key计算成员个数
zscore key member计算某个成员分数
zrank|zrevrank key memberzrank是按分数从低到高返回排名,zrevrank反之
zrem key member [member...]删除元素
zincrby key increment member增加成员分数
zrange|zrevrange key start end [withscores]返回指定排名范围的成员,加上withscores,同时会返回成员的分数
zrangebyscore|zrevrangebyscore key min max [withscores] [limit offset count]按照分数从低到高返回,limit offset count限制输出的起始位置和个数,max和min还支持开区间(小括号)和闭区间(中括号),-inf和+inf分别代表无限小和无限大
zcount key min max返回指定分数范围的成员个数
zremrangebyrank key start end删除指定排名内的升序元素
zremrangebyscore key min max删除指定分数范围的成员

求交集
zinterstroe destination numkeys key [key...] [weights weight [weight...]] [aggregate sum|min|max]
destination:交集计算结果保存到这个key
numkeys:需要做交集计算的key的个数
key [key…]:需要做交集计算的key
weights weight [weight…]:每个key的权重,在做交集计算时,每个key中的每个member会将自己分数乘以这个权重,每个key的权重默认是1
aggregate sum|min|max:计算成员交集后,分值可以按照sum、min、max做汇总,默认值是sum
求并集
和求交集一样 只是zinterstroe 变成zunionstore
在这里插入图片描述

内部编码

ziplist(压缩列表)
skiplist(跳跃表)

使用场景

排行榜系统,要排序的值设定为有序集合的分数,然后就可以特定排序,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值