排行榜系统如何处理海量并发(massive concurrency)?请说明 collapse forwarding、Redis 单线程执行模型、原子更新以及 Lua 脚本的作用。
How does a leaderboard system handle massive concurrency? Explain collapse forwarding, Redis’s single-threaded execution model, atomic updates, and the role of Lua scripting.
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: hard
分类: system-design, performance
标签: massive-concurrency, collapsed-forwarding, atomic, redis-single-thread, lua
参考答案摘要
TL;DR 高并发读请求可通过反向代理的 collapse forwarding 合并相同请求减少后端压力;Redis 通过单线程顺序执行命令确保 score 更新原子性,同时可用 Lua 脚本实现额外排名逻辑与差分更新。Redis 可并发接收网络请求,但命令执行仍是顺序的。 并发读优化:Collapse Forwarding 反向代理合并并发读请求,避免同一 key 被大量重复请求击穿缓存。 提...
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。