type
status
date
slug
summary
tags
category
icon
password
Redis 有序集合(ZSet)操作总结
有序集合(ZSet)是 Redis 中的一种数据结构,与普通集合不同的是,它为每个元素都关联了一个评分(score),元素按评分从小到大有序排列。这使得有序集合特别适合需要排序和范围查询的场景,如排行榜、优先队列等。
1. 添加成员
ZADD key score1 member1 score2 member2 ...
: 将一个或多个成员添加到有序集合中,同时指定每个成员的评分(score)。如果成员已存在,则更新其评分。
示例:
2. 获取指定 score 区间的成员
ZRANGEBYSCORE key min max
: 按评分从低到高获取指定 score 区间的成员。
ZREVRANGEBYSCORE key max min
: 按评分从高到低获取指定 score 区间的成员。
ZRANGE key start stop
: 按评分从低到高获取指定索引区间的成员。
ZREVRANGE key start stop
: 按评分从高到低获取指定索引区间的成员。
示例:
3. 获取集合长度
ZCARD key
: 获取有序集合中的成员数量。
示例:
4. 获取指定成员的评分
ZSCORE key member
: 获取指定成员的评分。
示例:
5. 获取指定成员的排名
ZRANK key member
: 获取成员的排名,按评分从小到大排序,排名从 0 开始。
ZREVRANK key member
: 获取成员的排名,按评分从大到小排序,排名从 0 开始。
示例:
6. 获取指定 score 区间的成员数量
ZCOUNT key min max
: 获取指定 score 区间的成员数量。
示例:
7. 增加指定成员的评分
ZINCRBY key increment member
: 为指定成员的评分增加指定的值。
示例:
8. 删除指定成员
ZREM key member1 member2 ...
: 删除有序集合中的一个或多个成员。
示例:
9. 删除指定数量的成员
ZPOPMIN key [count]
: 从有序集合中删除并返回 score 最低的count
个成员。
ZPOPMAX key [count]
: 从有序集合中删除并返回 score 最高的count
个成员。
示例:
重点用法总结
- 排序和排名:有序集合最强大的特性在于可以对数据进行排序和排名操作,适用于排行榜等场景。
- 范围查询:通过
ZRANGEBYSCORE
、ZCOUNT
等命令,可以轻松实现按评分范围的查询。
- 优先队列:通过
ZINCRBY
等命令,可以实现优先队列的功能,根据任务的优先级来排序和调度任务。
示例
- 构建排行榜:
- 优先队列:
Redis 的有序集合(ZSet)通过其强大的排序和范围查询功能,能够在需要排序、排名和优先级处理的场景中发挥重要作用。
打赏
如果您觉得我的内容对你有所帮助,不要吝啬你的一键三连!如果你有能力的话也可以通过下面请我喝杯咖啡~金额您随意~如果对文章内容有任何疑问,欢迎加入群组联系我~
- 作者:Don Mark
- 链接:null/article/acd5d9e9-fea8-4d39-82f6-f7ac1bf558d8
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。