*Redis ZREVRANGEBYLEX 命令

返回 Sorted Set 中 member 在指定字典序范围内的成员,按字典序从大到小排序。要求所有 member 的 score 相同。


*语法

ZREVRANGEBYLEX key max min [LIMIT offset count]

*参数说明

参数 类型 必填 说明
key String Sorted Set 键名
max String 最大 member,+ 表示正无穷,[ 表示闭区间,( 表示开区间
min String 最小 member,- 表示负无穷
LIMIT Integer offset 和 count,分页

*返回值

条件 返回值
有成员 member 数组,按字典序从大到小
无成员 空数组 []

*时间复杂度

O(log(N)+M),N 为成员数,M 为返回数量。


*示例

> ZADD names 0 "Alice" 0 "Bob" 0 "Charlie" 0 "David" 0 "Eve"
(integer) 5

# 从大到小,字典序 C 到 E
> ZREVRANGEBYLEX names [E [C
1) "Eve"
2) "David"
3) "Charlie"

# 分页
> ZREVRANGEBYLEX names + - LIMIT 0 2
1) "Eve"
2) "David"

*常见错误

  1. score 不一致:如果成员 score 不一致,结果不确定。

*最佳实践

  1. 反向字典序查询:需要按字典序从大到小查询范围时使用。

*FAQ

Q: ZREVRANGEBYLEX 和 ZRANGEBYLEX 有什么区别? A: ZREVRANGEBYLEX 按字典序从大到小返回;ZRANGEBYLEX 从小到大。注意参数顺序也相反(先 max 后 min)。