好友圈排行榜怎么做?ZINTERSTORE 的作用是什么,为什么也可以让客户端本地合并来减轻服务端压力?
How do you build friend-circle leaderboards? What does ZINTERSTORE do and why can client-side merging reduce server load?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: medium
分类: System Design
标签: friends, zinterstore, personalization, client-side
参考答案摘要
答案 好友圈榜单需要把“好友集合”与“全局榜单”取交集。 将好友列表维护为一个 Sorted Set(初始 score=0)。 用 ZINTERSTORE 对好友集合与全局榜单做交集,产出好友圈榜单。 如果用户规模很大,服务端为每个用户实时生成好友榜单会很重。可选方案是 客户端合并 :客户端拿到好友列表与全局榜单的局部数据,在本地计算并缓存,从而把个性化计算“下沉”到端侧,按玩家规模线性扩展。
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。