码迷,mamicode.com
首页 > 其他好文 > 详细

游戏排行榜系统设计 -- 有感

时间:2020-02-22 00:43:01      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:需要   就是   必须   级别   在线用户   内存   名称   数据量   数据   

需求:
1、玩家在点击穿/脱装备需要重新计算战斗力
2、玩家可以查看自己的战斗力及排名
3、战斗力前100名的玩家名称以及战斗力大小随时可以查询,且准确性100%
4、为了准确性,任意两个玩家同时查看自己的战斗力时,战斗力高的玩家排名必须高
5、玩家数量庞大,可能达到百万级别

需求解析:
1、战斗力就是个优先级
2、优先级经常会变化
3、每个玩家的排名都要可查
4、前100名的查询频率很高
5、排名不能太离谱,会很容易穿帮
6、数据量较大

一个节点的信息应该至少包含:
1、玩家名称
2、玩家ID(唯一)
2、战斗力

数据结构初选:
1、平衡二叉树
2、跳跃表
3、红黑树

对于数据结构的选型,都是为了维护节点有序的,这样可以轻易计算出排名,也要能保证插/删节点的效率。

如果再增加一点难度,总玩家数量达到百亿级别,其中的在线用户是百万级别。这时就需要区分冷热数据了,对于那些离线的玩家,是没有查询需求的,除了前100名。

这样的话,前100名的玩家数据要放在内存中,在线玩家的数据也要放在内存中,离线玩家的数据要存盘。待我再好好思考思考。

游戏排行榜系统设计 -- 有感

标签:需要   就是   必须   级别   在线用户   内存   名称   数据量   数据   

原文地址:https://www.cnblogs.com/xcw0754/p/12343694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!