如何做一个排行榜功能

如果每次查询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 。

猜你喜欢

转载自blog.csdn.net/qq_36542426/article/details/106375108
今日推荐