首页/数据/数据库速查/排行榜场景(分页、并列与周期榜)
Redis 命令96 条

排行榜场景(分页、并列与周期榜)

ZSet 是排行榜的标准实现:ZINCRBY 计分、ZREVRANGE 取 TopN、ZREVRANK 取我的名次;周期榜用独立键 + 定时合并。

数据库速查数据更新于 2026-10-12

完整流程

完整流程
ZINCRBY rank:daily 1 user:88            # 打点
ZREVRANGE rank:daily 0 9 WITHSCORES      # Top10
ZREVRANK rank:daily user:88              # 我的名次(0 基)
ZSCORE rank:daily user:88                # 我的分数
ZUNIONSTORE rank:week 7 rank:day:1 rank:day:2 ... AGGREGATE SUM   # 周榜合并
分页ZREVRANGE start stop 或 ZRANGE REV LIMIT
并列同分按字典序;需要稳定顺序用复合分数
周期日/周/月各自建键,定时任务合并
面向 UI 的「我的排名」在大榜单上也是 O(log N),放心用;但 TopN + 周围名次一起展示时,周围名次需要两次查询。

易错点

  • 榜单键不设过期也不归档:一年后内存全是历史榜单
  • 用整数秒作分数再拼高精度名次:同秒多人并列,名次抖动

数据来源与参考

  • Redis 官方文档: ZRANGE
  • Redis 官方文档: ZINCRBY

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌