redis实现音乐排行榜功能

sorted_set类型

  • 新的存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式
  • 需要的存储结构:新的存储模型,可以保存可排序的数据
  • sorted_set类型:在set的存储结构基础上添加可排序字段

基本操作

  • 添加数据
zadd key score1 member1 [score2 member2]
  • 获取全部数据
zrange key start stop [WITHSCORES]
zrevrange key start stop [WITHSCORES]
  • 删除数据
zrem key member [member ...]

  • 按条件获取数据
zrangebyscore key min max [WITHSCORE] [LIMIT]
zrevrangebyscore key max min [WITHSCORE]
  • 条件删除数据
zremrangebyrank key start stop
zremrangebyscore key min max

注意

  • min与max用于限定搜索查询的条件
  • start与stop用于限定查询范围,作用于索引,表示开始和结束索引
  • offset与count 用于限定查询范围,作用于查询结果,表示开始位置和数据总量

  • 获取集合数据总量
zcard key
zcount key min max
  • 集合交、并操作
zinterstore  destination numkeys key [key ...]
zunionstore destination numkeys key [key ...]

业务场景

票选广东十大杰出青年,各类综艺选秀海选投票

各类资源网站TOP10(电影,歌曲,文档,电商,游戏等)

聊天室活跃度统计

游戏好友亲密度

业务分析

  • 为所有参与排名的资源建立排序依据

解决方案

  • 获取数据对应的索引(排名)
zrank key member
zrevrank key member
  • score值获取与修改
zscore key member
zincrby key increment member

Trips 13 :

  • redis应用于计数器组合排序功能对应的排名

posted @ 2020-02-13 20:09  if年少有为  阅读(562)  评论(0编辑  收藏  举报