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