English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Сортированные множества (sorted set) Redis

Упорядоченные наборы Redis, как и наборы, также являются集合ами элементов типа string и не позволяют повторяться членам.

Разница в том, что каждый элемент связан с оценкой типа double. Redis использует оценки для сортировки членов в наборе от меньшего к большему.

Члены упорядоченного набора уникальны, но оценка (score) может повторяться.

Сборники реализованы с помощью хеш-таблицы, поэтому сложность добавления, удаления и поиска составляет O(1). Максимальное количество членов в сборнике составляет 232 - 1 (4294967295, каждый набор может хранить более 4 миллиардов членов).

Онлайн-пример

redis 127.0.0.1:6379> ZADD w3codeboxkey 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD w3codeboxkey 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE w3codeboxkey 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"

В данном примере мы используем команду ZADD Добавлены три значения в упорядоченную集合 redis и связаны с оценками.

Команды упорядоченной集合и redis

В таблице ниже перечислены основные команды redis упорядоченной集合и

НомерКоманда и описание
1ZADD key score1 member1 [score2 member2]
Добавление одного или нескольких членов в упорядоченную集合, или обновление оценок существующих членов
2ZCARD key
Получение количества членов в упорядоченной集合и
3ZCOUNT key min max
Вычисление количества членов в указанном интервале оценок в упорядоченной集合и
4ZINCRBY key increment member
Добавление инкремента к оценке указанного члена в упорядоченной集合и
5ZINTERSTORE destination numkeys key [key ...]
Вычисление交集 одного или нескольких упорядоченных наборов и хранение результата в новом упорядоченном наборе destination
6ZLEXCOUNT key min max
Подсчет количества членов в указанном словарном интервале в упорядоченной集合и
7ZRANGE key start stop [WITHSCORES]
Возврат членов в указанном интервале по индексу в упорядоченной集合и
8ZRANGEBYLEX key min max [LIMIT offset count]
Возврат членов по словарному интервалу в упорядоченной集合и
9ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
Возврат членов в указанном интервале по оценке в упорядоченной集合и
10ZRANK key member
Возврат индекса указанного члена в упорядоченной集合и
11Удаление ключа и его членов [член ...]
Удаление одного или нескольких членов из сортированного множества
12ZREMRANGEBYLEX key min max
Удаление всех членов сортированного множества в диапазоне словаря
13ZREMRANGEBYRANK key start stop
Удаление всех членов сортированного множества в диапазоне рейтинга
14ZREMRANGEBYSCORE key min max
Удаление всех членов сортированного множества в диапазоне значений分数а
15ZREVRANGE key start stop [WITHSCORES]
Возврат членов сортированного множества в диапазоне по индексу, сортировка по убыванию (от высокого к низкому)
16ZREVRANGEBYSCORE key max min [WITHSCORES]
Возврат членов сортированного множества в диапазоне значений分数а, сортировка по убыванию (от высокого к низкому)
17ZREVRANK key member
Возврат рейтинга члена в сортированном множестве, сортировка членов по значениям分数а по убыванию (от大到 малому)
18ZSCORE key member
Возврат значения分数а члена в сортированном множестве
19ZUNIONSTORE destination numkeys key [key ...]
Вычисление объединения одного или нескольких сортированных множеств и хранение в новом ключе
20ZSCAN key cursor [MATCH pattern] [COUNT count]
Итерация по элементам сортированного множества (включая член и значение элемента)