Команда Redis Zrangebylex
Команда Redis Zrangebylex используется для получения элементов в заданном диапазоне сортированного множества в лексикографическом порядке. Эта команда в основном используется для сортированных множеств, элементы которых являются строками.
Синтаксис
Базовый синтаксис команды 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 выполняет запросы диапазонов по лексикографическому порядку, а не по оценкам. Это делает её очень подходящей для сценариев, где данные нужно извлекать в алфавитном порядке.
Другие расширения
