Команда Redis Zrangebylex

Упорядоченное множество Redis

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

Упорядоченное множество Redis

Другие расширения