帮你快速理解、总结文档立即下载

sorted sets 族

最近更新时间:2026-08-06 18:51:32
我的收藏

命令介绍

Sorted Sets 族命令用于操作按分数(score)排序的唯一成员集合,是排行榜、优先级队列、延迟任务调度等场景的核心数据结构。其核心命令按功能可分为以下五类:
成员增删与分数操作
ZADD:添加成员及其分数(支持 NX/XX/GT/LT 条件)。
ZREM / ZREMRANGEBYRANK / ZREMRANGEBYSCORE / ZREMRANGEBYLEX:按成员名、排名范围、分数范围或字典序范围删除。
ZINCRBY:原子递增成员分数,适用于实时排行榜计分。
排名与分数查询
ZSCORE / ZMSCORE:查询单个或多个成员的分数。
ZRANK / ZREVRANK:查询成员的正序/倒序排名。
ZCARD / ZCOUNT / ZLEXCOUNT:统计成员总数、分数范围内成员数或字典序范围内成员数。
ZRANDMEMBER:随机返回成员。
范围检索
ZRANGE / ZREVRANGE / ZRANGEBYSCORE / ZREVRANGEBYSCORE / ZRANGEBYLEX / ZREVRANGEBYLEX:按排名、分数或字典序范围检索成员,支持分页(LIMIT)。
ZRANGESTORE:将范围检索结果存入新键。
ZSCAN:以游标方式增量迭代。
集合间运算
ZUNIONSTORE / ZINTERSTORE:求并集或交集并存入新键(支持权重 WEIGHTS 与聚合 AGGREGATE)。
ZDIFF / ZDIFFSTORE / ZINTER / ZUNION:直接返回差集、交集、并集结果。
ZINTERCARD:快速统计交集基数。
弹出操作(队列场景,Redis 5.0+ / Valkey 8.0+)
ZPOPMIN / ZPOPMAX:弹出分数最低/最高的成员。
BZPOPMIN / BZPOPMAX:阻塞式弹出。
ZMPOP / BZMPOP(Redis 7.0+):从多个键中批量弹出,适用于延迟队列消费与优先级调度。
更多信息请参见 Valkey 官方文档:Sorted Set 命令组。

命令支持概览

基础命令:zadd、zcard、zcount、zincrby、zinterstore、zlexcount、zrange、zrangebylex、zrangebyscore、zrank、zrem、zremrangebylex、zremrangebyrank、zremrangebyscore、zrevrange、zrevrangebylex、zrevrangebyscore、zscore、zrevrank、zscan、zunionstore,Redis 2.8标准架构及4.0、5.0、6.2、7.0版本、Valkey 8.0、9.0的标准架构与集群架构均支持。
5.0+ 新增命令:zpopmax、zpopmin、bzpopmax、bzpopmin,仅 Redis 5.0、6.2、7.0 版本及 Valkey 8.0、9.0 版本支持。
6.2+ 新增命令:zdiff、zdiffstore、zrandmember、zrangestore、zunion、zmscore、zinter,仅 Redis 6.2、7.0 版本及 Valkey 8.0、9.0 版本支持。
7.0+ 新增命令:zmpop、bzmpop、zintercard,仅 Redis 7.0 版本及 Valkey 8.0、9.0 版本支持。
跨 Slot 限制:集群架构下,zinterstore、zunionstore 不支持跨 Slot 操作。

命令兼容性矩阵

Sorted Sets 族命令在各版本与架构下的支持情况如下表所示(✓ 表示支持,✗ 表示不支持,— 表示该命令不存在跨 Slot 访问场景)。
命令
Valkey 9.0标准架构
Valkey 9.0集群架构
Redis 7.0/Valkey 8.0标准架构
Redis 7.0/Valkey 8.0集群架构
Redis 6.2标准架构
Redis 6.2集群架构
Redis 5.0标准架构
Redis 5.0集群架构
Redis 4.0标准架构
Redis 4.0集群架构
Redis 2.8标准架构
集群架构跨 Slot 支持
zadd
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zcard
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zcount
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zincrby
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zinterstore
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✗
zlexcount
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zrange
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zrangebylex
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zrangebyscore
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zrank
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zrem
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zremrangebylex
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zremrangebyrank
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zremrangebyscore
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zrevrange
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zrevrangebylex
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zrevrangebyscore
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zscore
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zrevrank
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zscan
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
zunionstore
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✗
zpopmax
✓
✓
✓
✓
✓
✓
✓
✓
✗
✗
✗
—
zpopmin
✓
✓
✓
✓
✓
✓
✓
✓
✗
✗
✗
—
bzpopmax
✓
✓
✓
✓
✓
✓
✓
✓
✗
✗
✗
—
bzpopmin
✓
✓
✓
✓
✓
✓
✓
✓
✗
✗
✗
—
zdiff
✓
✓
✓
✓
✓
✓
✗
✗
✗
✗
✗
—
zdiffstore
✓
✓
✓
✓
✓
✓
✗
✗
✗
✗
✗
—
zinter
✗
✗
✗
✗
✗
✗
✗
✗
✗
✗
✗
—
zrandmember
✓
✓
✓
✓
✓
✓
✗
✗
✗
✗
✗
—
zrangestore
✓
✓
✓
✓
✓
✓
✗
✗
✗
✗
✗
—
zunion
✓
✓
✓
✓
✓
✓
✗
✗
✗
✗
✗
—
zmscore
✓
✓
✓
✓
✓
✓
✗
✗
✗
✗
✗
—
zmpop
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
bzmpop
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
zintercard
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—