CS-Notes 学习笔记
Java 后端 · Redis 与缓存

怎样用 Redis 实现排行榜?

先自己想一想,再看参考要点

参考要点

  • 用 ZSET,成员是用户或文章 ID,分值是分数或点赞数
  • ZINCRBY 加分,ZREVRANGE key 0 9 WITHSCORES 取前 10 名,ZREVRANK 查名次(从 0 开始),都是 O(logN)
  • 分值相同时按成员名的字典序排,要先达到的排前面可以把时间编进分值
  • 前 10 名是热点键时,可以在本地缓存中保存 1 秒
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。