开发者学堂课程【Redis 入门到精通(基础篇):数据类型-sorted_set 实现排行榜】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/764/detail/13392
数据类型-sorted_set 实现排行榜
内容介绍
一、sorted_set 类型数据的扩展操作
二、Tips13
一、sorted_set 类型数据的扩展操作
业务场景
票选广东十大杰出青年,各类综艺选秀海选投票
各类资源网站TOP10 (电影,歌曲,文档,电商,游戏等)
聊天室活跃度统计
游戏好友亲密度
业务分析
为所有参与排名的资源建立排序依据
经常看到直播开启,房间人多,比较火,经过排序做出一个排行榜,涉及到了排序,很多东西都要排序,对于榜单类,除了数量以外还有排序,数量前面的计数器可以解决,排序搞不定,sorted_set 刚好
有排序功能,就交给他去做了,为所有参与排名的进行排序,需要的是第几名,需要通过排序获取索引,这是一系列的操作。
解决方案
获取数据对应的索引(排名)zrank key memberzrevzank key memberscore值获取与修改zscore key memberzincrby key increment member
提供的业务支持,这个就是获取索引的业务操作,zadd movies 143 aa 97 bb 201 cc,有了数据,进行排序,zrank movies bb,得到0,要考虑正反方向,要考虑到实际的位次,要加一,这个是查索引,一个排名,另外一查的是值,zscore movies aa,得到票数143,
这个就是拿出 score 值,如果说票数增加,使用 zincrby movies 1 aa,就是说给aa投了一票,最后再次得出票数为144,结合操作与基本操作就可以做一个榜单数据,这里提供了整体的榜单排名数据,还有合并操作等等,求一个 sum 就得到了最终的数量。
二、Tips13
Redis 应用于计数器组合排序功能对应的排名