使用Redis构建高效稳定低延迟的排行榜业务

一、业务描述
      现有一排行榜业务,数据库中拥有百万级用户,中秋佳节将要来临,用户可以写一篇关于中秋的故事,故事可邀请好友点赞,也可以打赏该故事,现在要挑选出关于中秋话题相关的故事,根据用户故事的点赞数、获得的打赏数以及故事查看次数为依据,根据一定规则算出后在客户端展示前100的故事排行榜。

二、业务分析
      分析业务得知,用户故事排行榜可不必实时刷新,比如5分钟或者是10分钟刷新一次,用户是没有多少感知的,如果涉及数据量太过庞大或者是业务计算复杂需要更多时间排行,完全可以明确的告知用户5分钟或者10分钟刷新一次排行榜,甚至是更久。面对这样的业务,不可能在用户请求的时候去计算排行,这样做服务器不仅响应慢,服务器还会消耗大量的资源,比如大量的逻辑计算导致服务器CPU爆满,内存消耗过大等问题。要想用户的请求能够很快的响应,在查询时这个排行榜就已经排好了。下面我介绍一种我在工作中所使用的一种方法,也许并不是最好的,但满足一般的业务还是没有任何问题的,对于超大的数据集,需要另觅方法。

三、方法介绍
      合理使用Redis的有序集合。Redis是一种将数据放到内存中的数据库,面对排行榜这样的业务需求,找它是完全没有问题的。更值得拍手叫好的是,Redis的有序集合可以帮助我们实现排行榜,将多个维度的数据源取得之后,通过一定的规则计算出分值,把这些数据放入到Redis的有序集合中,那么排行结果自然而然的就出来了,取出排行数据后,在填充一些客户端展示需要的数据即可。要想实现每隔一分钟或是5分钟刷新一次,只需开启一个定时器,定时去调用排行计算逻辑。更多关于Redis的有序集合的命令,请参

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值