怎样用 Redis 实现排行榜?
先自己想一想,再看参考要点
参考要点
- 用 ZSET,成员是用户或文章 ID,分值是分数或点赞数
- ZINCRBY 加分,ZREVRANGE key 0 9 WITHSCORES 取前 10 名,ZREVRANK 查名次(从 0 开始),都是 O(logN)
- 分值相同时按成员名的字典序排,要先达到的排前面可以把时间编进分值
- 前 10 名是热点键时,可以在本地缓存中保存 1 秒
参考要点
学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。