Skip to content

Latest commit

 

History

History
12 lines (9 loc) · 1.09 KB

RedisZSet的原理和使用场景(延迟队列).md

File metadata and controls

12 lines (9 loc) · 1.09 KB

Redis ZSet 原理:

  • Redis的ZSet(有序集合)是在Set基础上增加了一个分数(score)字段,用于对集合中的元素进行排序。
  • ZSet内部使用跳跃表(Skip List)和哈希表结合的方式实现,保证了元素的有序性和唯一性。
  • ZSet支持添加、删除、更新元素,并且可以根据分数范围、排名等条件快速获取元素。

Redis ZSet 使用场景:

  1. 排行榜:ZSet适合用于实现各种类型的排行榜功能,比如用户积分排行榜、文章热度排行榜等,通过设置分数来排序。
  2. 时间轴:可以利用ZSet记录时间戳及相关事件信息,实现用户时间轴功能,按时间顺序展示用户的动态。
  3. 延迟队列:ZSet常用于实现延迟队列,即将需要延迟处理的任务以时间戳作为分数存储在有序集合中,通过定时轮询或者通过有序集合提供的带有时间区间的命令来获取需要执行的任务。
  4. 范围查询:ZSet提供了根据分数范围获取元素的功能,可用于实现范围查询,比如根据积分范围查找用户。