Redis Zrangebylex 命令
Redis Zrangebylex 命令用于在有序集合(sorted set)中按照字典序(lexicographical order)获取指定范围内的成员。这个命令主要用于那些成员是字符串的有序集合。
语法
redis Zrange 命令基本语法如下:
ZRANGEBYLEX key min max [LIMIT offset count]
key:键名,指定要操作的有序集合。min和max:字典序范围的边界值。这两个值可以是负无穷大(-)或正无穷大(+),也可以是具体的字符串值。字符串值表示有序集合中成员的字典序边界。LIMIT offset count:可选参数,用于限制返回结果的数量。offset表示跳过前面多少个元素,count表示返回多少个元素。
命令行为:
- 如果
min是+或min之后的第一个元素,max是-或max之前的最后一个元素,则返回键key存储的有序集合中的所有元素。 - 如果
min和max都是具体的字符串,则返回有序集合中字典序在min和max之间的所有元素。 - 如果
min是+或min之后的第一个元素,而max是具体的字符串,则返回有序集合中字典序大于或等于max的所有元素。 - 如果
min是具体的字符串,而max是-或max之前的最后一个元素,则返回有序集合中字典序小于或等于min的所有元素。
可用版本
>= 2.8.9
返回值
指定区间内的元素列表。
实例
redis 127.0.0.1:6379> ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g (integer) 7 redis 127.0.0.1:6379> ZRANGEBYLEX myzset - [c 1) "a" 2) "b" 3) "c" redis 127.0.0.1:6379> ZRANGEBYLEX myzset - (c 1) "a" 2) "b" redis 127.0.0.1:6379> ZRANGEBYLEX myzset [aaa (g 1) "b" 2) "c" 3) "d" 4) "e" 5) "f" redis>
假设我们有一个有序集合 myzset,包含以下元素:
ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g
获取字典序在 a 和 f 之间的所有元素:
ZRANGEBYLEX myzset a f
获取字典序大于 b 且小于 f 的所有元素:
ZRANGEBYLEX myzset [b (f
获取字典序在 a 和 f 之间的元素,但只返回前 3 个:
ZRANGEBYLEX myzset a f LIMIT 0 3
请注意,ZRANGEBYLEX 命令是按照字典序进行范围查询的,而不是按照分数(score)进行范围查询。这使得它非常适合用于需要按字母顺序检索数据的场景。

