游戲排行榜系統設計 -- 有感


需求:
1、玩家在點擊穿/脫裝備需要重新計算戰斗力
2、玩家可以查看自己的戰斗力及排名
3、戰斗力前100名的玩家名稱以及戰斗力大小隨時可以查詢,且准確性100%
4、為了准確性,任意兩個玩家同時查看自己的戰斗力時,戰斗力高的玩家排名必須高
5、玩家數量龐大,可能達到百萬級別

需求解析:
1、戰斗力就是個優先級
2、優先級經常會變化
3、每個玩家的排名都要可查
4、前100名的查詢頻率很高
5、排名不能太離譜,會很容易穿幫
6、數據量較大

一個節點的信息應該至少包含:
1、玩家名稱
2、玩家ID(唯一)
2、戰斗力

數據結構初選:
1、平衡二叉樹
2、跳躍表
3、紅黑樹

對於數據結構的選型,都是為了維護節點有序的,這樣可以輕易計算出排名,也要能保證插/刪節點的效率。

如果再增加一點難度,總玩家數量達到百億級別,其中的在線用戶是百萬級別。這時就需要區分冷熱數據了,對於那些離線的玩家,是沒有查詢需求的,除了前100名。

這樣的話,前100名的玩家數據要放在內存中,在線玩家的數據也要放在內存中,離線玩家的數據要存盤。待我再好好思考思考。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM