Table of Contents

上一个主题

CDN

下一个主题

防火墙

本页

Rank

服务概述

Rank排行榜服务是新浪云开发的用于在分布式环境下统计排名的服务,每个用户可以建立多个排行榜,每个排行榜支持类似key-value的pair操作,用户可以以O(logn)的时间复杂度获取指定key的排名(根据value的比较),还可以获取到前N排名的列表(时间复杂度为O(n))。

注解

Rank服务并不存放用户的所有数据,只以一定比率的冗余存放TopN的数据,这样带来一个影响,就是如果数据存在激增/减的话,可能影响排名结果的准确性。

排行榜服务的特点就是可靠、快速,可以用于实时排名,如游戏积分排名、软件下载排名,同时排行榜还支持过期时间,过期的数据将不会出现在排行榜中,这样方便进行周排名和月排名。

典型使用举例:

  • 游戏积分排行榜:初始化时开发者可以从数据库导入用户的分数,然后根据用户在游戏中的得分,可以对用户的分数进行set、increase、decrease操作,当需要展示排行榜时,可以使用getlist、getrank进行展示。如果需要周排名或者月排名,则需要设置过期时间。为保证激增导致的数据准确性问题,可以定期从数据重新导入新的准确数据。
  • 统计热门话题:开发者可以分析用户的发言、利用分词服务拆分单词,加入排行榜,则排行榜就可以用于展示热门话题,具体的使用和细节同上。

服务限制

单app最大排行榜数量 64个
排行榜最大key数量 10000个
namespace的最大长度 128字节
key的最大长度 256字节
value的取值范围 -2147483648~2147483647

当排行榜的大小设置小于100时,排行榜实际保存的数据恒为1000,当排行榜的大小设置大于等于100时,排行榜将以10倍大小冗余保存数据。即排行榜设置大小1w,则排行榜实际可保存10w条数据。

排行榜的起止排名为0~num-1。