Redis Типы данных
Типы данных
Redis - это не просто хранилище значений ключей, это сервер структур данных, поддерживающий различные типы значений. В традиционных хранилищах значений ключей вы связываете строковые ключи со строковыми значениями, в Redis значение не ограничивается простой строкой, но также может содержать более сложные структуры данных. Ниже приведен список всех структур данных, поддерживаемых Redis:
- Бинарно-безопасные струны.
- Списки
- наборы
- Сортированные наборы
- Хэш
- Битовые массивы (или просто растровые изображения)
- HyperLogLogs:
Redis ключи:
Ключи Redis безопасны в двоичном формате (это означает, что они имеют известную длину, не определяемую никакими специальными завершающими символами), поэтому вы можете использовать любую двоичную последовательность в качестве ключа, от строки типа "foo" до содержимого файла JPEG. Пустая строка также является допустимым ключом. Вот несколько правил о ключах:
- Максимально допустимый размер ключа составляет 512 МБ.
- Очень длинные ключи не очень хорошая идея.
- Очень короткие ключи часто не очень хорошая идея. Хотя короткие клавиши, очевидно, будут занимать немного меньше памяти, ваша задача - найти правильный баланс.
- Попробуйте придерживаться схемы. Например, «object-type: id» - хорошая идея, как в «user: 1000». Точки или тире часто используются для полей из нескольких слов, как в «comment: 1234: reply.to» или «comment: 1234: reply-to».
Redis Strings:
Строки - это самый основной тип данных Redis. Это единственный тип данных в Memcached, поэтому новичкам также вполне естественно использовать его в Redis. Поскольку ключи Redis являются строками, когда мы также используем строковый тип в качестве значения, мы сопоставляем строку с другой строкой. Строковый тип данных полезен для ряда случаев использования, таких как кэширование фрагментов HTML или страниц. Вот некоторые общие команды, связанные со строками:
- SET: устанавливает значение для ключа
- GET: получает значение из ключа
- DEL: удаляет ключ и его значение
- INCR: атомарно увеличивает ключ
- INCRBY: увеличивает ключ на обозначенные значения
- EXPIRE: промежуток времени, в течение которого ключ должен существовать (обозначается в секундах)
Строки могут быть использованы для хранения объектов, расположенных по ключу.
127.0.0.1:6379> SET newkey "строка redis" Хорошо 127.0.0.1:6379> ПОЛУЧИТЬ newkey "Строка Redis"
Redis Lists:
Списки в Redis представляют собой набор упорядоченных значений. Это в отличие от наборов, которые неупорядочены. Списки повторов реализованы через связанные списки. Это означает, что даже если у вас есть миллионы элементов внутри списка, операция добавления нового элемента в заголовок или в конец списка выполняется за постоянное время. Вот некоторые общие команды, связанные со списками:
- LPUSH: добавить значение в начало списка
- RPUSH: добавить значение в конец списка
- LPOP: получить и удалить первый элемент в списке
- RPOP: получить и удалить последний элемент в списке
- LREM: удалить элементы из списка
- LRANGE: получить диапазон элементов из списка
- LTRIM: изменяет список, оставляя только указанный диапазон
Пример:
redis 127.0.0.1:6379> lpush w3resourcelist redis (целое число) 1 redis 127.0.0.1:6379> lpush w3resourcelist mongodb (целое число) 2 redis 127.0.0.1:6379> lpush w3resourcelist rabitmq (целое число) 3 redis 127.0.0.1:6379> lrange w3resourcelist 0 10 1) "rabitmq" 2) "mongodb" 3) "редис"
Наборы Redis:
Redis Sets - это неупорядоченные наборы строк. Если вы хотите объединить строки, вы можете сделать это с наборами REDIS. Вот некоторые общие команды, связанные с наборами:
- SADD: добавить одного или членов к набору
- SMEMBERS: получить всех участников набора
- SINTER: найти пересечение нескольких множеств
- SISMEMBER: проверить, есть ли значение в наборе
- SRANDMEMBER: получить случайный набор членов
Наборы могут быть полезны в различных ситуациях. В наборах каждый член набора уникален, добавление членов в набор не требует операции «проверить, затем добавить». Вместо этого набор будет проверять, является ли элемент дубликатом при выполнении команды SADD.
Пример:
redis 127.0.0.1:6379> sadd w3resourcelist redis (целое число) 1 redis 127.0.0.1:6379> sadd w3resourcelist mongodb (целое число) 1 redis 127.0.0.1:6379> sadd w3resourcelist rabitmq (целое число) 1 redis 127.0.0.1:6379> sadd w3resourcelist rabitmq (целое число) 0 redis 127.0.0.1:6379> smembers w3resourcelist 1) "rabitmq" 2) "mongodb" 3) "редис"
Redis Сортированные наборы:
Сортированные наборы - это тип данных, который похож на сочетание между множеством и хэшем. Как и наборы, отсортированные наборы состоят из уникальных неповторяющихся строковых элементов, поэтому в некотором смысле отсортированный набор также является набором.
Однако, хотя элементы внутри наборов не упорядочены, каждый элемент в отсортированном наборе связан со значением с плавающей запятой, называемым счетом (поэтому тип также похож на хэш, поскольку каждый элемент сопоставляется со значением). Вот некоторые общие команды, связанные с отсортированными наборами:
- ZADD: добавляет участников в отсортированный набор
- ZRANGE: отображает элементы отсортированного набора, упорядоченные по индексу (по умолчанию от низкого до высокого)
- ZREVRANGE: отображает элементы отсортированного набора, упорядоченные по индексу (от высокого к низкому)
- ZREM: удаляет элементы из отсортированного набора
Пример:
redis 127.0.0.1:6379> zadd w3resourcelist 0 redis (целое число) 1 redis 127.0.0.1:6379> zadd w3resourcelist 0 mongodb (целое число) 1 redis 127.0.0.1:6379> zadd w3resourcelist 0 rabitmq (целое число) 1 redis 127.0.0.1:6379> zadd w3resourcelist 0 rabitmq (целое число) 0 redis 127.0.0.1:6379> ZRANGEBYSCORE w3resourcelist 0 1000 1) "редис" 2) "mongodb" 3) "rabitmq"
Redis Hashes:
Хэши в Redis полезны для представления объектов со многими полями. Они созданы для хранения большого количества полей на небольшом пространстве. Вот некоторые общие команды, связанные с хэшами:
- HMSET: устанавливает несколько значений хеша
- HSET: устанавливает поле хеша со строковым значением
- HGET: извлекает значение из хеш-поля
- HMGET: извлекает все значения для заданных полей хеша
- HGETALL: извлекает все значения для хэша
Пример:
В следующем примере хеша тип данных используется для хранения объекта пользователя, который содержит основную информацию о пользователе.
redis 127.0.0.1:6379> Пользователь HMSET: 1 имя пользователя w3resource пароль 123456 баллов 200 Хорошо redis 127.0.0.1:6379> Пользователь HGETALL: 1 1) «имя пользователя» 2) "w3resource" 3) «пароль» 4) "123456" 5) «очки» 6) "200"
Redis Битовые массивы (или просто растровые изображения):
С помощью специальных команд можно обрабатывать строковые значения как массив битов: вы можете устанавливать и очищать отдельные биты, считать все биты, установленные в 1, находить первый установленный или неустановленный бит и т. Д.
HyperLogLogs:
Это вероятностная структура данных, которая используется для оценки мощности множества.
Предыдущая: Конфигурация Redis
Далее: Redis Keys DEL
Новый контент: Composer: менеджер зависимостей для PHP , R программирования