前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >案例剖析:季度畅销榜、热门关键字等功能的开发实现

案例剖析:季度畅销榜、热门关键字等功能的开发实现

作者头像
MavenTalker
发布2023-03-10 20:45:19
2370
发布2023-03-10 20:45:19
举报
文章被收录于专栏:歪脖贰点零歪脖贰点零
排行榜功能是一个很常见的需求,特别是在电商网站上很常见。使用Redis中有序集合的特性来实现排行榜功能是又好又快的选择。一般排行榜都是有实效性的,比如“投资排行榜”。如果没有实效性一直按照总榜来排,可能榜首总是几个较大用户,对于新用户来说,那真是太令人沮丧了。 项目中也有类似案例,简单整理下,分享给大家。

下面我来用redis模拟形成排行榜数据。

redis默认有16个数据库,采用select N命令,即可切换到对应的数据库。针对排行榜等销售分析类数据可单独存储到一个库中。

我们通常通过redis来存储热数据。比如图书排行榜,上周热销榜等等,为用户提供参考。比如要作日排行榜,使用命令:

zincyby rank:book:20150326 1 thinkpad400

设置该key过期时间,到期后自动清除,防止过多占用,此为当天的排行榜。在下单成功后向此key中写入增量数据

ZRANGE rank:book:20150326 0 -1 withscores

升序排列排行榜数据,往往我们需要倒序排列,如:

ZREVRANGE rank:book:20150326 0 9 withscores

利用并集实现多天的积分总和,实现“周排行榜”:

zunionstore rank:book:201565wk 7 rang:book:20150326 rang:book:20150327 ...

那么查询上周排行榜 Top10 的信息就是:

ZREVRANGE rank:book:201565wk 0 9 withscores

设置一定的有效期,以此类推开成月排行榜,季排行榜, 年度排行榜。以及同品类排行榜,全站销售排行榜等等,都是基于此类数据的合并、排序。若有数据分析的需要,同样可以把热数据持久化,比如写入Mysql中,便于数据挖掘。

Sorted Sets集合大概可容纳(2的32次方-1)个元素,所在容量上不用考虑太多。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MavenTalk 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档