现在要做一款游戏产品,涉及到计分排行问题, 简单的排行用redis的sort set就能完成的, 可是动态的排行该如何设计呢? 比如按月排行,其实就是当前时间到过去30天内的排行, 因为时间是时刻在变的,所以时间维度是每秒都是变得。 应蓝浩的询问,补充下 是一个游戏,一般10-40秒玩一局, 玩完了,会有评分的, 现在需要月排名(此刻到30*24*3600秒以前的排名), 如果一个人玩多次的,按最好的成绩统计。
Redis php mysql mongodb
採樣密度呢?要先說清楚你的排行依據
可以试试 socket.io ,这个就是维持一个长连接,有了长连接一切就好办啦〜
socket.io
我也来帮忙吧。
也是用的 ZSET ,比如用户胜利加分:
ZSET
ZINCRBY DAY:20150113 60 Kavlez ZINCRBY DAY:20150113 80 舞千寻
就像这样,那就是一天一个ZSET。 但如果最多也就统计30天的话,那就永远是30个,每天加一个 DEL 一个。
DEL
每天(或者几分钟)更新一次最近30日ZSET:
ZUNIONSTORE LAST30 2 LAST30 DAY:20150113
前10:
ZREVRANGE LAST30 0 10 WITHSCORES
数据先写进redis用队列,然后定时任务来写 mysql,如何实现?
知乎首页根据关注标签显示内容的实现?
如何高效的做数据覆盖操作
数据访问层(DAL)如何优雅的协调存取缓存数据库(如redis)和持久数据库(如mysql)?
redis存储用户评论
选择mysql合适还是mogodb合适?