В предыдущем блоге мы объяснили, что такое Redis и как установить Redis в средах Windows и Linux.
Для тех, кто не видел, вы можете нажать на ссылку ниже, чтобы просмотреть его:
Серия Redis (1): Введение в Redis и установку среды.
В этом блоге мы объясним пять структур данных Redis и их общие команды.Пять структур данных:
- Строка Строка
- Список
- Набор коллекций
- Хэш
- отсортированное множество ZSet
ПРИМЕЧАНИЕ. Redis может хранить карту пар клавиши (ключей) (значение), где клавиша (ключ) всегда строка, а значение может быть одним из пяти, упомянутых выше.
1. Строка
В Redis Strings может хранить следующие 3 типа значений:
- байтовая строка
- целое число
- число с плавающей запятой
Обычно используемые строковые команды в основном делятся на следующие три типа:
- Общие команды
- Самодобавляющаяся команда
- команда подстроки
Далее мы объясняем их один за другим.
1.1 Общие команды
Общие команды: GET, SET, DEL.
Функции команд GET, SET, DEL следующие:
Заказ | Функции |
---|---|
GET | Получить значение указанного ключа |
SET | Установить значение указанного ключа |
DEL | удалить значение указанного ключа |
Затем мы открываем интерактивный клиент redis-cli и выполняем приведенную выше команду, чтобы увидеть эффект.
Ниже приведены примеры использования этих команд:
1.2 Команды автоматического увеличения и уменьшения
Команды автоматического увеличения и уменьшения в основном включают: INCR, DECR, INCRBY, DECRBY, INCRBYFLOAT.
Когда пользователь сохраняет значение в строку Redis, если значение может быть преобразовано в целое число или число с плавающей запятой, тогда Redis будет знать об этом и позволит пользователю выполнять различные операции со строкой.INCR*
иDECR*
работать.
Функции команд INCR и DECR следующие:
Заказ | грамматика | Функции |
---|---|---|
INCR | INCR keyname | Увеличьте значение, сохраненное ключом, на 1 |
DECR | DECR keyname | Уменьшить значение, хранящееся в ключе, на 1 |
Ниже приведены 3 ненормальных сценария, которые могут существовать:
- При выполнении операции автоинкремента или автодекремента для несуществующего ключа Redis будет рассматривать значение этого ключа как 0 при выполнении операции.
- При выполнении операции автоинкремента или автодекремента для ключа, в котором хранится пустая строка, Redis будет рассматривать значение этого ключа как 0 при выполнении операции.
- Redis вернет ошибку при увеличении или уменьшении строкового ключа, значение которого не может быть интерпретировано как целое число или число с плавающей запятой.
Ниже приведены примеры использования этих команд:
Функции команд INCRBY и DECRBY аналогичны приведенным выше командам INCR и DECR, но INCRBY и DECRBY могут каждый раз указывать значение для увеличения или уменьшения, в то время как INCR и DECR каждый раз увеличивают или уменьшают на 1.
Команда INCRBYFLOAT аналогична команде INCRBY, за исключением того, что команда INCRBYFLOAT используется для увеличения или уменьшения числа с плавающей запятой, а команда INCRBY используется для увеличения или уменьшения целых чисел.
Функции команд INCRBY, DECRBY, INCRBYFLOAT следующие:
Заказ | грамматика | Функции |
---|---|---|
INCRBY | INCR keyname amount | Добавьте значение, сохраненное ключом, к целочисленной сумме |
DECRBY | DECR keyname amount | Вычесть целое число из значения, сохраненного ключом |
INCRBYFLOAT | INCRBYFLOAT keyname amount | Добавьте значение, хранящееся в ключе, к сумме с плавающей запятой |
Мы можем открыть интерактивный клиент redis-cli и выполнить приведенную выше команду, чтобы увидеть эффект.
1.3 Команды подстроки
Команды подстроки в основном включают: APPEND, GETRANGE и SETRANGE.
Функция команды APPEND следующая:
Команда: ДОБАВИТЬ
Синтаксис: APPEND значение имени ключа
Функция: добавить значение значения в конец текущего сохраненного значения указанного ключа с именем ключа.
Функциональность команды GETRANGE следующая:
Команда: ПОЛУЧИТЬ
Синтаксис: GETRANGE keyname start end
Функция: получить подстроку, состоящую из всех символов в диапазоне от начала смещения (включая начало) до конца смещения (включая конец).
Функция команды SETRANGE следующая:
Команда: НАСТРОЙКА
Синтаксис: SETRANGE keyname начальное значение
Функция: установить подстроку, начинающуюся с начального смещения, на заданное значение.
Ниже приведены примеры использования этих команд:
2. Список
Списки в Redis в основном имеют следующие две характеристики:
- Хранить несколько строк по порядку
- Элементы в списке могут повторяться
Часто используемые команды списка в основном делятся на следующие три типа:
- Общие команды
- Блокировать всплывающую команду
- команда перемещения элемента
Далее мы объясняем их один за другим.
2.1 Общие команды
Общие команды: RPUSH, LPUSH, RPOP, LPOP, LINDEX, LRANGE, LTRIM.
Функции команды RPUSH следующие:
Команда: НАЖМИТЕ
Синтаксис: значение имени ключа RPUSH [значение ...]
Функция: Нажмите один или несколько значений вправо в конце списка
Функции команды LPUSH следующие:
Команда: ЛПУШ
Синтаксис: значение имени ключа LPUSH [значение ...]
Функция: Поместить одно или несколько значений в левый конец списка
Функции команды RPOP следующие:
Команда: РПОП
Синтаксис: Keyname rpop
Функция: удалить и вернуть крайний правый элемент списка
Функции команды LPOP следующие:
Команда: ЛПОП
Синтаксис: имя ключа LPOP
Функция: удалить и вернуть крайний левый элемент списка
Функциональность команды lindex выглядит следующим образом:
Команда: lindex.
Синтаксис: смещение имени ключа LINDEX
Функция: возвращает элемент, смещение которого равно смещению в списке.
Функциональность команды LRANGE следующая:
Команда: LRANGE
Синтаксис: LRANGE имя ключа start end
Функция: возвращает все элементы в диапазоне от начального (включая начальное) смещения до конечного смещения (включая конец) списка.
Функции команды LTRIM следующие:
Команда: ЛТРИМ
Синтаксис: имя ключа LTRIM start end
Функция: обрезать список, сохраняя только элементы в диапазоне от начального (включая начальное) смещения до конечного смещения (включая конец).
Ниже приведены примеры использования этих команд:
2.2 Блокировка всплывающих команд
Есть всплывающая блокировка команды: BLPOP, Brpop.
Функциональность команды BLPOP выглядит следующим образом:
Команда: БЛОПОП
Синтаксис: имя ключа BLPOP [имя ключа ...] тайм-аут
Функция: извлеките крайний левый элемент из первого непустого списка, если нет, заблокируйте в течение секунд ожидания и дождитесь появления всплывающего элемента.
Функциональность команды BRPOP следующая:
Команда: БРОПОП
Синтаксис: имя ключа BRPOP [имя ключа ...] тайм-аут
Функция: извлеките самый правый элемент из первого непустого списка, если нет, заблокируйте в течение секунд ожидания и дождитесь появления всплывающего элемента.
Ниже приведены примеры использования этих команд:
2.3 Команды перемещения элемента
Команды перемещения элемента в основном включают в себя: RPOPLPUSH, BRPOPLPUSH.
Функциональность команды RPOPLPUSH следующая:
Команда: РПОПЛПУШ
Синтаксис: RPOPLPUSH исходный ключ целевой ключ
Функция: извлечь крайний правый элемент из списка ключей-источников, поместить этот элемент в крайний левый список ключей-приемников и вернуть этот элемент пользователю.
Команду BRPOPLPUSH можно рассматривать как блокирующую реализацию команды RPOPLPUSH.Функции следующие:
Команда: BRPOPLPUSH
Синтаксис: BRPOPLPUSH тайм-аут ключа источника
Функция: извлечь крайний правый элемент из списка ключей-источников, поместить этот элемент в крайний левый список ключей-назначений и вернуть этот элемент пользователю.Если исходный ключ пуст, заблокируйте на время ожидания в секундах и дождитесь появления всплывающего элемента.
Ниже приведены примеры использования этих команд:
3. Набор для сбора
Коллекции Redis начинаются сбеспорядокспособ хранения несколькихразныеЭлементы.
По сравнению со списком, упомянутым выше, коллекции в REDIS имеют следующие две особенности:
- Хранение множества случайных струн
- Элементы в коллекции не могут повторяться
Обычно используемые команды установки в основном делятся на следующие три типа:
- Общие команды
- команда перемещения элемента
- Разность/пересечение/объединение команд
Далее мы объясняем их один за другим.
3.1 Общие команды
Общие команды: SADD, SMEMBERS, SISMEMBER, SREM, SCARD.
Описание функции вышеуказанной команды выглядит следующим образом:
Заказ | грамматика | Функции |
---|---|---|
SADD | SADD keyname item [item ...] | Добавить один или несколько элементов в коллекцию |
SMEMBERS | SMEMBERS keyname | Возвращает все элементы, содержащиеся в коллекции |
SISMEMBER | SISMEMBER keyname item | Проверьте, существует ли элемент элемента в имени ключа коллекции |
SREM | SREM keyname item [item ...] | Удалить один или несколько элементов из коллекции |
SCARD | SCARD keyname | Возвращает количество элементов в коллекции |
Ниже приведены примеры использования этих команд:
3.2 Команды перемещения элемента
Команды перемещения элемента в основном включают: SMOVE.
Описание функции вышеуказанной команды выглядит следующим образом:
Синтаксис: SMOVE sourcekey элемент destkey
Функция: удалить элемент элемента в коллекции sourcekey и добавить элемент элемента в коллекцию destkey.
Если элемент был успешно удален, вернуть 1, иначе вернуть 0
Ниже приведен пример использования команды SMOVE:
3.3 Команды различия/пересечения/объединения
Команды пересечения/объединения/разности в основном включают: SDIFF, SDIFFSTORE, SINTER, SINTERSTORE, SUNION, SUNIONSTORE.
Описание функции вышеуказанной команды выглядит следующим образом:
Заказ | грамматика | Функции |
---|---|---|
SDIFF | SDIFF keyname [key-name ...] | Возвращает элементы, которые существуют в первом наборе и не существуют в других наборах (операция набора разностей) |
SDIFFSTORE | SDIFFSTORE destkey keyname [key-name ...] | Сохраните элементы, которые существуют в первом наборе и не существуют в других наборах (операция набора различий) в наборе ключей назначения |
SINTER | SINTER keyname [key-name ...] | Возвращает элементы, которые присутствуют во всех множествах одновременно (операция пересечения) |
SINTERSTORE | SINTERSTORE destkey keyname [key-name ...] | Сохранение элементов (операция пересечения), существующих во всех наборах одновременно, в набор destkey |
SUNION | SUNION keyname [key-name ...] | Возвращает элементы, которые существуют хотя бы в одном наборе (операция объединения) |
SUNIONSTORE | SUNIONSTORE destkey keyname [key-name ...] | Сохраните элементы, существующие хотя бы в одной коллекции (операция объединения), в коллекцию destkey. |
Ниже приведены примеры использования этих команд:
4. Хэш
Что касается структуры данных Hash, некоторые книги называются хешами, некоторые книги называются хэшами, и в этой статье используется это имя: хеш.
Хэш Redis может хранить сопоставление между несколькими парами ключ-значение, то есть пользователи могут хранить несколько пар ключ-значение в ключе Redis, как показано ниже:
Далее давайте рассмотрим часто используемые команды хеширования.
4.1 Добавление пар ключа
Для добавления пар ключ-значение в хеш есть две команды, а именно HSET, HMSET, где HSET может добавить только пары ключ-значение, а HMSET может добавить несколько пар.
Вот пример использования этих двух команд:
Хэш-ключ в это время содержит 3 пары ключ-значение, а именно:
4.2 Получение пар ключ-значение
Есть пять команд для получения пары ключ-значение в хеше:
- HGET Получить значение указанного ключа из хеша
- HMGET Получить значение одного или нескольких ключей из хеша
- Хайки получают все ключи, содержащиеся в хэш
- HVALS получить все значения, содержащиеся в хэше
- HGETALL Получает все пары ключ-значение, содержащиеся в хеше.
Вот пример использования этих 5 команд:
4.3 Получить количество пар ключ-значение
в состоянии пройтиHLEN
команда, чтобы получить количество пар ключ-значение, содержащихся в хэше.
Ниже приведеныHLEN
Пример использования команды:
4.4 Определить, существует ли ключ
в состоянии пройтиHEXISTS
команда, чтобы проверить, существует ли ключ в хэше.
Ниже приведеныHEXISTS
Пример использования команды:
4.5 Автоматическое увеличение/уменьшение
Подобно командам самоувеличения и самоуменьшения строк, при хешировании мы можем использоватьHINCRBY
Команда добавляет целое число к значению, хранящемуся в ключе, используяHINCRBYFLOAT
Команда добавляет число с плавающей запятой к значению, хранящемуся в ключе.
Вот пример использования этих двух команд:
4.6 Удаление пар ключ-значение
в состоянии пройтиHDEL
Команда для удаления одного или нескольких ключей из хеша.
Ниже приведеныHDEL
Пример использования команды:
5. Сортированный набор ZSet
Отсортированные наборы, такие как хэши, можно использовать для хранения сопоставлений между несколькими парами "ключ-значение". Ключи отсортированных наборов называются членами, и каждый член отличается. Значение называется оценкой, и оценка должна быть числом с плавающей запятой. .
На следующем рисунке представлен пример отсортированного набора из 2 элементов:
Далее давайте рассмотрим часто используемые команды упорядоченного набора.
5.1 Добавление элементов
в состоянии пройтиZADD
Команда добавляет элемент в отсортированный набор.
Ниже приведеныZADD
Пример использования команды:
Ключ zset в настоящее время содержит сопоставление между 3 членами и оценкой следующим образом:
5.2 Получение элементов
Есть две команды для получения элементов в упорядоченном наборе:
-
ZRANGE
Синтаксис: ZRANGE имя ключа start stop [WITHSCORES]
Функция: возвращает элементы отсортированного набора, ранжированные между началом и концом, если указан необязательный параметр WITHSCORES,
Тогда балл участника будет возвращен вместе
-
ZRANGEBYSCORE
Синтаксис: ZRANGEBYSCORE имя ключа min max [WITHSCORES] [LIMIT offset count]
Функция: возвращает элементы отсортированного набора, чьи баллы находятся между минимумом и максимумом.Если указан необязательный параметр WITHSCORES,
Тогда балл участника будет возвращен вместе
Вот пример использования этих двух команд:
5.3 Получает количество элементов
в состоянии пройтиZCARD
Команда для получения количества элементов, содержащихся в отсортированном наборе.
Ниже приведеныZCARD
Пример использования команды:
Вы также можете использовать команду ZCOUNT, чтобы получить количество элементов в упорядоченном наборе, чьи баллы находятся в определенном диапазоне.
Ниже приведеныZCOUNT
Пример использования команды:
5.4 Автоматическое увеличение/уменьшение
Подобно командам самоувеличения и самоуменьшения строк, в упорядоченном наборе мы можем использоватьZINCRBY
Команда добавляет целое число к счету участника.
Следующее этоZINCRBY
Пример использования команды:
5.5 Удаление элементов
в состоянии пройтиZREM
Команда для удаления одного или нескольких членов отсортированного набора.
Ниже приведеныZREM
Пример использования команды:
Если вы хотите узнать больше о командах Redis, вы можете проверить адрес официального сайта:redis.io/commands.
6. Исходный код и ссылка
Джозайя Л. Карлсон «Рейды в действии»