外观
一句话答案
Redis ZSet 天然支持排行榜:ZADD 更新分数,ZREVRANGE 获取 TopN,ZREVRANK 查排名,O(logN) 操作。
核心要点
核心操作:
ZADD key score member:更新分数ZREVRANGE key 0 9:Top 10ZREVRANK key member:查排名
大规模优化: 分桶(按分数段) / 定时快照 / 近似排名
追问与易错
追问方向:
- 实时和定时排行榜怎么选?
- 数据量千万怎么办?
- 并列排名怎么处理?
易错点:
- ❌ ZSET 能存无限数据——内存有限需清理
- ❌ 忽略并发更新问题——ZADD 是原子的
💡 记忆锚点
排行榜的天选数据结构是Redis ZSet:ZADD更新分数、ZREVRANGE取TopN、ZREVRANK查排名,全是O(logN)跳表操作。数据量大了三招优化:分桶(按分数段拆多个ZSet)、定时快照(非实时排行定期算)、近似排名(亿级数据不需要精确到每一名)。