现在要做一款游戏产品,涉及到计分排行问题,
简单的排行用redis的sort set就能完成的,
可是动态的排行该如何设计呢?
比如按月排行,其实就是当前时间到过去30天内的排行,
因为时间是时刻在变的,所以时间维度是每秒都是变得。
应蓝浩的询问,补充下
是一个游戏,一般10-40秒玩一局,
玩完了,会有评分的,
现在需要月排名(此刻到30243600秒以前的排名),
如果一个人玩多次的,按最好的成绩统计。
也是用的ZSET,比如用户胜利加分:
`
ZINCRBY DAY:20150113 60 Kavlez
ZINCRBY DAY:20150113 80 舞千寻
`
就像这样,那就是一天一个ZSET。
但如果最多也就统计30天的话,那就永远是30个,每天加一个DEL一个。
每天(或者几分钟)更新一次最近30日ZSET:
`
ZUNIONSTORE LAST30 2 LAST30 DAY:20150113
`
前10:
`
ZREVRANGE LAST30 0 10 WITHSCORES
`
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。