🗒️redis数据库8— zset(有序集合)
00 分钟
2024-8-25
2024-8-25
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 个成员。
    • 示例:

重点用法总结

  • 排序和排名:有序集合最强大的特性在于可以对数据进行排序和排名操作,适用于排行榜等场景。
  • 范围查询:通过 ZRANGEBYSCOREZCOUNT 等命令,可以轻松实现按评分范围的查询。
  • 优先队列:通过 ZINCRBY 等命令,可以实现优先队列的功能,根据任务的优先级来排序和调度任务。

示例

  • 构建排行榜:
    • 优先队列:
      Redis 的有序集合(ZSet)通过其强大的排序和范围查询功能,能够在需要排序、排名和优先级处理的场景中发挥重要作用。
       
       
       

      打赏

      如果您觉得我的内容对你有所帮助,不要吝啬你的一键三连!如果你有能力的话也可以通过下面请我喝杯咖啡~金额您随意~如果对文章内容有任何疑问,欢迎加入群组联系我~
      notion image
      上一篇
      redis数据库7—set(集合)
      下一篇
      redis数据库9— Python操作 Redis