嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2014-08-13 2623 次浏览 标签 : 计算机基础

出处:http://www.ucai.cn/ask/detail?queid=3495

最佳解决方式是显示区间就可以了,例如你的排名是100w+或者1000w+,几乎没有网站会显示精确排名(例如 12031875),因为这没有意义还不如1000w+清晰。这样的话只需要求出前1万名(甚至更少)的分数以及10w、100w、1000w等几个分数然后缓存成积分->排名,获取排名就非常简单了。前1万名分数变化后,下次登录再更新缓存,后面几个阶段的分数可以缓存更久。如果一定要精确排名,则可以考虑用积分来对应排名,因为积分一般只有几万,最多几十万,建立一个10万的整形数组对应排名,如果用户的积分从5变到8,则只需要把a[5-7]排名加1就可以了。

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表