由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 脸家设计题,设计游戏排名系统
相关主题
再来继续比较,芒果和redis各什么时候用比较好?如何自学nosql
这两个设计题如何答?Pinterest陶涛:三个教训和三个发展选择 (转载)
祝贺peking2升级成Staff & Tech Lead我的System Design总结
请教个performance 相关的问题来道A设计题大家头脑风暴一下
关于MySQL和NoSQL的一道面试题秒杀设计题
求牛人 解答 一个Amazon 设计问题FYI, 做kafka的startup confluent刚成立
四个个软工职位内推FB设计题求教。
系统设计题怎么准备老年马工赶快去 fb
相关话题的讨论汇总
话题: redis话题: 玩家话题: 游戏话题: 排名话题: 设计
进入JobHunting版参与讨论
1 (共1页)
r*********n
发帖数: 32
1
设计一个在线游戏的排名系统。游戏是回合制的,每一回合结束后都会获得一个分数。
玩家可以在游戏中添加好友,每个玩家有任意个好友。在每一回合结束后,游戏界面需
要弹出两个排序的表格:(1)玩家及其所有好友的最高分数排序top 10;(2)玩家的
分数在所有用户(million级别)最高分数中的排名,以及该排名的前十位、后十位的
玩家及分数
主要是数据如何存?如何及时更新,大量玩家怎么获得million 级别的前10,后10
m******e
发帖数: 82
2
数据库(或nosql)+Redis Zset可以
s**********g
发帖数: 14942
3
肯定要shard吧
最终的前10和后10不会跳出每个server的前10后10的总集。。
d***o
发帖数: 113
4
可以考虑push model
每个玩家有自己的feed
游戏结束后就向所有这些feed都发送分数,看是否能进入前十
这样的结果是读取起来是很快的
trade off就是发送过程比较慢,但由于实时性要求不是很高,用另一个asynchronous
service做就行
j**********r
发帖数: 3798
5
用户数据随便一个NoSQL存即可,朋友排序实时比。总体排名可以按分数多服务器分段
排序. 一个服务器管一个数据段。
w****r
发帖数: 15252
6
普通游戏的用户数量,就算是Pokemon Go, Redis足够了,不需要shard吧

asynchronous

【在 d***o 的大作中提到】
: 可以考虑push model
: 每个玩家有自己的feed
: 游戏结束后就向所有这些feed都发送分数,看是否能进入前十
: 这样的结果是读取起来是很快的
: trade off就是发送过程比较慢,但由于实时性要求不是很高,用另一个asynchronous
: service做就行

c***w
发帖数: 134
7
我见过的工业届的做法是这样的
用redis cluster管理cluster,其中有hashslot 16384个,hashslot和shard一样,之
后用redis 中的排序集合存数据,存不同的纬度,比如一个区域,城市,州,国家的排
名(leaderboards),或者好友排名等。用redis有一个问题就是,容易丢数据,redis一
般用AOF (persist writes)或者 RDB (snapshot) ,问题是不容易存每一个write。因
为snapshot是没分钟级别的,AOF可以调整成记录所有的writes,但是performance会特
别的差,官方doc不建议用。这时候,需要有个write ahead log之类的东西去记录,所
以不管你自己实现,或者用一些别的工具都可以。比如可以在redis前面放一个kafka。
另一个方向是不用redis,而是用一个牛逼的VoltDB数据库。效果有待检验。
这是我查的资料:
https://stackoverflow.com/questions/27706573/huge-leaderboard-ranking-with-
filtering
https://www.voltdb.com/industries-served/gaming/
s****a
发帖数: 794
8
直接甩名词会挂的
即便不知道用什么存储 用什么架构 但能分析清楚需求 并能分析各种方法的优缺点 把
设计说清楚 远比甩几个名词要好
w********m
发帖数: 1137
9
需要两个hashmap。
1M的用户单机可以,
10M的用户要shard了。
c***w
发帖数: 134
10
可以参照redis加上kafka的实现。自己设计下就好了呀。
d**x
发帖数: 243
11
现在不做大数据这一块的,感觉面试有些吃亏啊。
1 (共1页)
进入JobHunting版参与讨论
相关主题
老年马工赶快去 fb关于MySQL和NoSQL的一道面试题
dropbox一道题求牛人 解答 一个Amazon 设计问题
Uber-NY onsite (zz)四个个软工职位内推
一点骑驴找马经验系统设计题怎么准备
再来继续比较,芒果和redis各什么时候用比较好?如何自学nosql
这两个设计题如何答?Pinterest陶涛:三个教训和三个发展选择 (转载)
祝贺peking2升级成Staff & Tech Lead我的System Design总结
请教个performance 相关的问题来道A设计题大家头脑风暴一下
相关话题的讨论汇总
话题: redis话题: 玩家话题: 游戏话题: 排名话题: 设计