讨论/系统设计/如何实现一个实时的游戏积分名次排行榜/
如何实现一个实时的游戏积分名次排行榜
展开讨论
海盗晕船发起于 2020-02-15
最近编辑于 2020-02-15
共 6 个讨论

redis zset自带排序

1
  1. 跳表查找、插入、删除操作时间复杂度为log(n)。维护一个用户较多的排行榜没有问题。
  2. Redis的zset的底层实现便是用了跳表。

大家都知道用Redis的zset可以轻易实现排行榜,那大家有否想过具体实现?
例如socre存积分这个并无争议,但是value应该放什么,放用户的id?还是要连同头像名字信息对象存起来?
如果只放id 那拿前一百名的时候要重新遍历去缓存拿取相应的头像和名字。那这里是否存在性能问题?

用priority_queue, 或set数据结构吧

构建小顶堆维护并更新排名

SkipList(跳表),实际使用效果很好。