`
timer_yin
  • 浏览: 690 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

用户评价排名系统设计

阅读更多
需求是这样的,做一个评价排名,用户可以对一个帖子进行评价,然后根据评价次数进行排名,需要在前端展示排名

用户的属性:用户id(userid),用户所在城市id(cityid),评价次数(count),排名(rank)

数据的增长是每天5W的速度进行增加,根据PM的要求,暂时定为1小时计算排名一次,根据城市统计用户在当前城市下的排名

目前我做的做法:数据库采用的Mysql,表设计的很简单,就是一张表和上述几个字段
做定时任务每隔一个小时,根据城市id将数据取出,然后在内存中进行计算排名,计算后更新rank字段值写回数据库

以目前的数据情况是没问题,但是很矬,当数据量增大到一定程度,这种设计肯定扛不住,所以寻求新的设计,也想知道成熟的排名更新统计系统是如何做的

希望有大神能指点一二


----------------------
偶然发现我还发过这么求助帖,结果发在了博客上,自我回复吧,当用户进行评价后,使用消息总线做异步,消费端收到消息后第一步先更新db,然后更新缓存,缓存使用redis,使用sorted set数据结构,key采用city_ranking(city使用具体的城市id),而score值就是评价次数,member就是用户id,基于sorted set天然的排序结构,可以方便的获取用户排名。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics