排行榜存储结构的优化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排行榜存储结构的优化相关的知识,希望对你有一定的参考价值。

当前需求:各排行榜统计并显示前100名玩家。

新增需求:战阶排行榜只需要显示前100玩家,但每周需要根据排名发放奖励。实际上就是要存全服所有玩家的战阶积分排名,数据量大大增加的情况下,也势必要对排行榜存储结构进行优化。
 
之前做法:
每个排行榜都是个list,所有玩家排行信息都存成TTopListInfo.
_sortlist = [info, info, info...]
技术分享
 
技术分享
缺点是,遍历查找不便。比如,进行删除玩家的操作:
技术分享
技术分享
以及更新排行榜数据,更为繁琐:
技术分享
技术分享
技术分享
技术分享
 
优化后,修改为,用dict和list进行存储。原有的TTopListInfo去掉ranking属性。
_sortlist[uuid] = info. #存储排行榜玩家相关信息
_ranklist = [uuid, uuid, uuid...]#仅存储名次及玩家uuid
对于数据的操作就大大便利了,可读性也提高了。
技术分享
 技术分享
技术分享
技术分享
 
 

以上是关于排行榜存储结构的优化的主要内容,如果未能解决你的问题,请参考以下文章

C程序存储结构

Review代码思考:排行榜同积分按时间排序优化方案 | Lua开发实战

redis实现音乐排行榜功能

优化 C# 代码片段、ObservableCollection 和 AddRange

系统管理之组织机构树形化结构优化篇

使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化