Упорядоченное множество¶
Упорядоченное множество (sorted set) – это набор уникальных строковых элементов, упорядоченных по параметру оценки score.
Оценка представляет собой число с плавающей точкой.
Каждому элементу упорядоченного множества соответствует свое значение оценки.
Если оценка у элементов совпадает, они сортируются в лексикографическом порядке.
Примеры использования упорядоченного множества:
Турнирная таблица (leaderboard);
Ограничители скорости – например, создание скользящего окна ограничения скорости, чтобы предотвратить чрезмерное количество API-запросов.
Смотрите также: Множество, Хэш-таблица.
Поддерживаемые команды¶
ZADD– добавить один или несколько элементов и соответствующие им оценки в упорядоченное множество;ZCARD– вернуть мощность (количество элементов) упорядоченного множества;ZREM– удалить один или несколько элементов из упорядоченного множества;ZINCRBY– увеличить оценку для элемента упорядоченного множества на указанное значение;ZRANK– вернуть индекс (ранг) указанного элемента, элементы множества при этом отсортированы по возрастанию. Это означает, что элемент с наименьшей оценкой имеет индекс 0.Примечание
Временная сложность команд
ZRANKandZREVRANKравна O(N). Здесь:N – количество элементов в упорядоченном множестве.
В командах
ZRANKиZREVRANKRedis имеет сложность O(log(N)).ZREVRANK– вернуть индекс (ранг) указанного элемента, элементы множества при этом отсортированы по убыванию. Это означает, что элемент с наибольшей оценкой имеет индекс 0;ZRANGE– вернуть диапазон элементов множества, ограниченный по краям заданными индексами. КлючBYLEXкомандой не поддерживается.Примечание
Временная сложность команды
ZRANGEсоставляет O(N). Здесь:N – количество элементов в упорядоченном множестве.
ZPOPMIN– удалить N элементов с наименьшей оценкой из упорядоченного множества и затем вернуть их;ZPOPMAX– удалить N элементов с наибольшей оценкой из упорядоченного множества и затем вернуть их.