Поиск…


Вступление

Тип данных Sorted Set в Redis является упорядоченной версией типа данных Set. Сортированный набор Redis состоит из коллекции уникальных членов. Каждый член в сортированном наборе может рассматриваться как пара, состоящая из члена и оценки. Счет используется для упорядочивания членов в наборе в порядке возрастания.

Синтаксис

  • ZADD ключ [NX | XX] [CH] [INCR] оценка участник [оценка участник ...]
  • Ключ ZCARD
  • Ключ ZCOUNT мин. Макс.
  • Ключ ZLEXCOUNT мин. Макс.

замечания

Официальную документацию для Sorted Sets можно найти на сайте Redis.io .

Сортированные наборы иногда называются zsets. Если вы используете команду TYPE на сортированном наборе ключей, значение zset будет возвращено.

Добавление элементов в отсортированный набор

Redis предоставляет команду ZADD для добавления элементов в отсортированный набор. Основной формой команды ZADD является указание набора, добавляемого элемента и его оценки. Например, если бы я хотел построить упорядоченный набор моей любимой пищи (от наименьшего к большему), я мог бы использовать любой из:

zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer

или альтернативно:

zadd favs 1 apple 2 pizza 3 chocolate 4 beer

Функция ZADD работает аналогично функции SADD с несортированным множеством. Результатом команды ZADD является количество элементов, которые были добавлены. Поэтому, после создания моего набора, как указано выше, если я снова попытаюсь пить ZADD:

ZADD favs 4 beer

Я бы получил 0 результат, если бы решил, что лучше шоколад, чем пиво, я мог бы выполнить:

ZADD favs 3 beer 4 chocolate

чтобы обновить мои настройки, но я все равно получаю результат с возвратом 0, так как пиво и шоколад уже находятся в наборе.

Подсчет элементов в отсортированном наборе

Redis предоставляет три команды для подсчета элементов в отсортированном наборе: ZCARD, ZCOUNT, ZLEXCOUNT.

Команда ZCARD является основным тестом для мощности набора. (Это аналогично команде SCARD для наборов.). ZCARD возвращает количество элементов набора. Выполнение следующего кода для добавления элементов в набор:

zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer

работает ZCard:

zcard favs

возвращает значение 4.

Команды ZCOUNT и ZLEXCOUNT позволяют подсчитать подмножество элементов в отсортированном наборе на основе диапазона значений. ZCOUNT позволяет вам подсчитывать элементы в определенном диапазоне баллов, а ZLEXCOUNT позволяет подсчитать количество элементов в определенном лессографическом диапазоне.

Используя наш набор выше:

zcount favs 2 5

вернет 3, так как есть три предмета (пицца, шоколад, пиво), которые имеют баллы от 2 до 5 включительно.

ZLEXCOUNT предназначен для работы с наборами, где каждый элемент имеет одинаковую оценку, форсирование и упорядочивание имен элементов. Если мы создали такой набор, как:

zadd favs 1 apple
zadd favs 1 pizza
zadd favs 1 chocolate
zadd favs 1 beer

мы могли бы использовать ZLEXCOUNT для получения количества элементов в определенном лексографическом диапазоне (это делается побайтовым сравнением с использованием функции memcpy).

zlexcount favs [apple (chocolate

вернется 2, поскольку два элемента (яблоко, пиво) попадают в диапазон яблока (включительно) и шоколада (эксклюзивный). В качестве альтернативы мы могли бы сделать оба конца включительно:

zlexcount favs [apple [chocolate

и получить результат 3.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow