您当前的位置: 首页 >  redis
  • 0浏览

    0关注

    516博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【你不了解的Redis】基于Redis实现消息队列的6种方案之方案简述(中)基于Sorted Set、PUB/SUB的实现

不太灵光的程序员 发布时间:2020-06-28 20:20:08 ,浏览量:0

想要看更加舒服的排版、更加准时的推送 关注公众号“不太灵光的程序员” 每日八点有干货推送 公众号“不太灵光的程序员” 同时发布 《基于Redis实现消息队列的6种方案之方案简述(中)》 阅读原文

在《基于Redis实现消息队列的6种方案之方案简述(上)》中我们讲到了基于List类型实现的消息队列,今天我们来讲下优先队列的实现。

Redis有序集合的特点

回忆下优先队列的特点,能保证每次取出的元素都是队列中优先级别最高的。这一特点是使用List类型无法满足的,数据只能是先进先出的,那我们来看下Sorted Set类型的特点。

有序集合(Sorted Set)是不允许重复的String类型元素的集合,且每个元素都会关联一个Double类型的分数。

有序集合的成员是唯一的,但分数是可以重复。集合中最大的成员数为 232 - 1 等于4294967295, 也就是每个集合可存储40多亿个成员。

基于Sorted Set以上的特点在实际开发中有许多的应用,比如做游戏的实时战绩排行榜、博客中文章点赞排行榜等各类排行榜和优先队列的实现。

基于Sorted Set的实现方案
  • ZADD在集合中添加一个带有分数的元素。
  • ZRANGE返回有序集中,指定区间内的成员,其中成员的位置按分数值递增(从小到大)来排序;我们使用0,0区间来获取处于顶部的元素。 ZREVRANGE与ZRANGE不同的是成员的位置按分数值递减(从大到小)来排列。
关注
打赏
1664870321
查看更多评论
立即登录/注册

微信扫码登录

0.6557s