Упорядоченное множество | Tdb_Resp
Команды Redis Упорядоченное множество

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

Упорядоченное множество (sorted set) – это набор уникальных строковых элементов, упорядоченных по параметру оценки score. Оценка представляет собой число с плавающей точкой. Каждому элементу упорядоченного множества соответствует свое значение оценки. Если оценка у элементов совпадает, они сортируются в лексикографическом порядке.

Примеры использования упорядоченного множества:

  • Турнирная таблица (leaderboard);

  • Ограничители скорости – например, создание скользящего окна ограничения скорости, чтобы предотвратить чрезмерное количество API-запросов.

Смотрите также: Множество, Хэш-таблица.

Поддерживаемые команды

  • ZADD – добавить один или несколько элементов и соответствующие им оценки в упорядоченное множество;

  • ZCARD – вернуть мощность (количество элементов) упорядоченного множества;

  • ZREM – удалить один или несколько элементов из упорядоченного множества;

  • ZINCRBY – увеличить оценку для элемента упорядоченного множества на указанное значение;

  • ZRANK – вернуть индекс (ранг) указанного элемента, элементы множества при этом отсортированы по возрастанию. Это означает, что элемент с наименьшей оценкой имеет индекс 0.

    Примечание

    Временная сложность команд ZRANK and ZREVRANK равна O(N). Здесь:

    • N – количество элементов в упорядоченном множестве.

    В командах ZRANK и ZREVRANK Redis имеет сложность O(log(N)).

  • ZREVRANK – вернуть индекс (ранг) указанного элемента, элементы множества при этом отсортированы по убыванию. Это означает, что элемент с наибольшей оценкой имеет индекс 0;

  • ZRANGE – вернуть диапазон элементов множества, ограниченный по краям заданными индексами. Ключ BYLEX командой не поддерживается.

    Примечание

    Временная сложность команды ZRANGE составляет O(N). Здесь:

    • N – количество элементов в упорядоченном множестве.

  • ZPOPMIN – удалить N элементов с наименьшей оценкой из упорядоченного множества и затем вернуть их;

  • ZPOPMAX – удалить N элементов с наибольшей оценкой из упорядоченного множества и затем вернуть их.

Found what you were looking for?
Feedback