如何做一个排行榜功能

如果每次查询TOP 10都去流水表聚拢数据的话,必须是非常耗时的。所以排行榜功能实时查表,显然不可能。所以就需要用到常见的缓存redis了。

redis有序集合

  redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。有序集合和集合一样可以存储字符串,另外有序集合的成员可以关联一个分数(score),这个分数用于集合排序。不过zset理论上只支持单个权重排序。若想复合权重,可用多个 ZSET 来做不同维度的排序,或者定义出一个你想要的顺序的 score 就 OK

常用的命令:

zadd :添加

zrevrangeWithScores :根据key 从第0个到底end个

zrem :移除

zrevrank 命令返回有序集中成员的排名。其中有序集成员按分数值递减(从大到小)排序。

zcard 命令用于计算集合中元素的数量。

zscore 命令返回有序集中,成员的分数值。 如果成员元素不是有序集 key 的成员,或 key 不存在,返回 nil 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值