排行榜存储结构的优化

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

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

你可能感兴趣的:(排行榜存储结构的优化)