100万用户的排行榜如何做啊?
每个人都可以看到自己的一个排行名次,而且是实时更新的,如果用户量少,可以用redis的有序集合,如果用户量很大,这种方案肯定不行。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
每个人都可以看到自己的一个排行名次,而且是实时更新的,如果用户量少,可以用redis的有序集合,如果用户量很大,这种方案肯定不行。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
如果用redis的话,直接分好几个表,最后在对每个表的topN做排序不就好了,典型的分治问题。
大多数情况下都会牺牲一点实时性,因为很少有用户会关注实时排名。
有一个权衡方法可以考虑一下,就是将用户数据分片,再在各个分片中排名。因为一般来说短时间内的操作对真实排名的影响不会特别大。比如根据昨天统计的结果,每一千名内部进行排名统计,然后零点对总排名进行更新。
我们都玩过游戏吧? 网页端的一些 和pc 或者手游 都是网友类型的 都有排行榜
然而 如果细心留意发现不管网页还是客户端类的网游,其实更新排名都是次日的 也就是说排名并不是当天的
首先你要了解一件事情 是从生活角度来了解,所谓排名即便是在生活中一场高中一年的入学分班排名 300个人,
分成6给班级 按照排名先后分班的话 那也是等成绩出来以后统一进行的 所以100万用户啊 你来100万给进场都不够写的 我想还是算了吧 换成达到目标后一段时间进行 现在老板们的需求是越来越奇怪,也越来越异想天开了
当然 100万 用户如果计算机运算能力达标也不是不行,但我认为一个小小的服务器或者就咱们这些人用的服务器 是达不到的 所谓的量子计算能解决这个问题 我信
只会关注topN的人。。。。少见统计几十万后面的人
我认为可以先对各个名次段评估一个大致的评分, 然后超过这个分数的放到响应的排名池里,根据业务的敏感性对前 n 名次的进行实时排名, 然后后面的比如10w 名之后的就给个'10w+' 这种名次不就好了?