如何设计一个实时排名系统

现在要做一款游戏产品,涉及到计分排行问题,
简单的排行用redis的sortset就能完成的,
可是动态的排行该如何设计呢?
比如按月排行,其实就是当前时间到过去30天内的排行,
因为时间是时刻在变的,所以时间维度是每秒都是变得。
应蓝浩的询问,补充下
是一个游戏,一般10-40秒玩一局,
玩完了,会有评分的,
现在需要月排名(此刻到30*24*3600秒以前的排名),
如果一个人玩多次的,按最好的成绩统计。
哆啦的时光机
浏览 1247回答 1
1回答

白猪掌柜的

做过几个游戏的排行榜,说下自己的思路。排行榜按照时间划分为:历史排行。所谓历史排行,说明成绩数据已经固化下来了,数据已经不可能再发生变化了。例如月排行,周排行。即时排行。数据最新的排行,数据还在发生着变化。玩家查看排行榜一般来说有两个关注点:前N名的数据,例如前100名的数据。自己的名次以及自己名次前后N名的玩家。基于上面两点一般会把排行榜数据分成两份:前N数据单独放在一张表里面,这张表的数据较少,更新频繁,数据非常的即时。把成绩换算成阶段,比如10积分一个阶段。记录每个阶段的人数,以及每个阶段的前N个人。不知道我讲清楚没。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript