кодесурса
«Redis

Redis Типы данных

script1adsense2code
script1adsense3code

Типы данных

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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code