Sorted Set 排行榜
Sorted Set 也叫 ZSet。它和 Set 一样不允许重复 member,但每个 member 会带一个 score。
Redis 会按 score 排序,所以 Sorted Set 很适合排行榜、权重排序、延迟任务时间轴等场景。
一、基本写入
一次写入多个:
格式:
二、按分数从低到高查询
返回所有成员和分数,分数从低到高排列。
查询前 3 个:
三、按分数从高到低查询
Redis 6.2 之后推荐使用 ZRANGE ... REV:
旧命令 ZREVRANGE 也能查询倒序排行榜:
后端排行榜通常使用倒序,因为分数越高排名越靠前。
四、增加分数
文章浏览量增加后同步排行榜分数:
ZINCRBY 返回增加后的新分数。
五、查询排名
从低到高的排名:
从高到低的排名:
排名从 0 开始。展示给页面时通常加 1。
六、删除成员
删除指定分数范围:
七、按分数区间查询
查询分数在 80 到 120 之间的文章:
查询大于 100 的文章:
( 表示不包含边界值。
八、排行榜示例
日榜 key:
文章被浏览时:
查询前 10:
设置过期时间:
日榜只需要保留一段时间,设置 TTL 可以避免历史榜单长期占用内存。

