如何实现相对排行榜(Relative Leaderboard),即获取某个玩家周围的排名玩家?请说明流程与 Redis 查询方式。
How do you implement a relative leaderboard to fetch surrounding players around a given player? Explain the workflow and Redis queries.
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: hard
分类: redis, system-design
标签: relative-leaderboard, zrevrank, zrevrange, surrounding-players
参考答案摘要
TL;DR 相对排行榜的核心是:先用 ZREVRANK 获取玩家 rank,然后用 ZREVRANGE 取 rank±N 的区间返回周边玩家。例如要取前后 5 名,则区间为 [rank-5, rank+5] 。 实现流程 调用 ZREVRANK 获取目标玩家的排名(0-based)。 根据排名计算上下区间(例如 rank-5 到 rank+5 )。 调用 ZREVRANGE 获取该区间内玩家列表(...
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。