在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1. 前言 之前写过一篇博客,讲解的是Redis的5种数据结构及其常用命令,当时有读者评论,说希望了解下这5种数据结构各自的使用场景,不过一直也没来得及写。 碰巧,在3月份找工作面试时,有个面试官先问了我Redis有哪几种数据结构,在我讲完后,面试官又问了我以下问题: 如何用Redis实现微信步数排行榜? 相信很多小伙伴都知道,可以使用 2. ZSET的使用场景
比如微博热搜榜: 比如微信步数排行榜: 3个场景的实现思路基本一致,接下来,我们以微信步数排行榜为例,了解下如何使用Redis的 3. 微信步数排行榜的大致实现思路 注意事项:本文的重点是Redis的 首先,我们来分析下微信步数排行榜的需求:
基于以上分析的需求,大致实现思路如下:
使用Redis的 获取微信步数排行榜时,分为以下2步: 1)先查询出微信步数排行榜中的好友昵称,也就是查询StepNumberRanking:zwwhnly:20200601的值 2)根据获取到的好友昵称,查询好友步数信息,也就是查询StepNumberRanking:zwwhnly:20200601:yst的值 4. 使用到的Redis命令 上面分析出了大致的实现思路,接下来我们讲解下使用到的Redis命令。 4.1 ZADD 执行如下命令初始化微信步数排行榜,以上面图片中的9个好友为例,分2次初始化:
执行完的效果如下图所示: 可以看到,默认是以score正序排列的,也就是步数从少到多排列。 4.2 HMSET 因为展示步数排行榜时,需要展示昵称、头像、步数、点赞数,所以可以借助于Redis的 执行完的效果如下图所示: 4.3 ZINCRBY 每隔一段时间,好友的步数是会更新的,此时可以使用
执行完的效果如下图所示: 更新完排行榜里的步数后,不要忘记执行 4.4 HINCRBY 当我们在步数排行榜里给好友点赞时,可以使用
4.5 ZRANGE 在所有的数据就绪后,剩下的就是查询了,我们可以使用
可以看出,查询出的好友信息是按步数从少到多排序的,而排行榜应该按步数从多到少排序,这就用到了下面的 4.6 ZREVRANGE
比如执行命令:
可以看出,查询出的好友信息按步数从大到小排序,刚好就是在排行榜要展示的顺序。 不过,排行榜一般都不展示所有的数据,这里我们的数据比较少,如果只获取步数top5的好友,就可以执行如下命令:
如果你要获取top200,就将上面的4修改为199。 4.7 HGETALL 获取到了排行榜里的好友信息,最后一步就是获取这些好友的步数、点赞数、头像、昵称这些信息,也就是我们之前使用
如果对这些命令不是很熟悉,可以看下我之前发布的一篇博客:Redis中5种数据结构的使用场景介绍。 5. 总结 Redis的 所以,学习好Redis的5种数据结构的基础很重要,但更重要的是要知道这些数据结构如何使用,每种数据结构用在什么场景最为合适,毕竟要学以致用嘛。 到此这篇关于使用Redis实现微信步数排行榜的文章就介绍到这了,更多相关redis 微信步数排行榜内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论