Архив метки: Redis

Запрос Redis из Python

request python redis

Remote Dictionary Server, или для краткости Redis, — это бесплатная база данных в оперативной памяти с открытым исходным кодом. Redis — это однопоточная база данных NoSQL, созданная для обеспечения высокой производительности и малой задержки между чтением и записью данных. Он использует пары ключ-значение для хранения данных.

Хотя данные хранятся в системной памяти, вы можете добавить постоянство, выгружая сохраненные данные на диск и загружая их при необходимости.

В этой статье мы познакомим вас с ключевыми концепциями Redis и покажем, как использовать Redis с языком программирования Python. Читать

Установка Redis в Ubuntu

Redis – это высокопроизводительная база данных, которая хранит все данные в памяти. Может использоваться как сервер баз данных, кэш, сервер очередей и хранилище сообщений. Программа написана на языке программирования Си и имеет библиотеки для использования в разных языках программирования, в том числе и для PHP.

В этой статье мы разберем как выполняется установка Redis Ubuntu 18.04, как пользоваться программой, а также как подключить и использовать библиотеку для PHP. Читать

Как установить Redis на Debian

Redis — это популярное хранилище значений ключей с обширными функциями, включая сегментирование, кластеризацию, графики, временные ряды и многое другое, что сделало его очень популярным среди разработчиков. Он имеет множество функций, необходимых для создания веб-приложения и его масштабирования. В этой статье мы покажем, как установить Redis в Debian Linux версии 11. И так приступим.

Читать

Распределенная блокировка Redis

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

Давайте рассмотрим различные типы секционирования в Redis, а также стоимость и преимущества каждого из них.

 

Типы разделов Redis

В Redis есть два механизма разделения:

  1. Разделение диапазона
  2. Разбиение хэша

 

Разделение по рангу

Лучший способ объяснить разделение — использовать аналогию. Предположим, у вас есть четыре экземпляра Redis: R0, R1, R2 и R3. Кроме того, предположим, что вам нужно хранить ключи в формате user:[id].

Вы можете использовать разбиение по диапазонам, чтобы разделить данные на доступные экземпляры Redis.

При разбиении по диапазонам вы сопоставляете раздел своих данных с конкретным экземпляром. Например, вы можете взять ключи от пользователя: [id<0> – id<1000>] и сопоставить их с экземпляром R0. Экземпляр r1 может содержать подмножество ключей пользователя [id<1001> – id<2000>] и так далее.

Это самая простая и наиболее применимая форма разбиения в Redis. Тем не менее, это дает ограничение.

Для секционирования диапазона требуется таблица, которая сопоставляет определенный диапазон с соответствующим ему кластером.

Таблица сопоставления требует управления и применения для каждого секционированного типа данных.

 

Разбиение хэша

Второй альтернативой разбиению по диапазону является разбиение по хешу. Redis использует функцию хеширования для преобразования ключа в число в этом методе разделения.

Например, если у нас есть ключ «fact», мы можем преобразовать его в число, используя функцию хэширования, такую ​​как CRC-16.

Это должно вернуть число как fact.

Затем Redis применяет к числу операцию по модулю и возвращает результат от 0 до 3.

Например:

8167 % 2

 

Приведенная выше операция должна вернуть 1. Затем Redis использует это значение, чтобы определить, в каком кластере должен храниться ключ. В нашем примере ключ «fact» хранится в экземпляре R1.

Примечание
В Redis операция хеширования выполняется иначе. Выше приведена просто аналогия.

 

Преимущества разделения.

  1. Разделение позволяет нескольким экземплярам совместно использовать память и хранить данные.
  2. Разрешить масштабирование вычислительной мощности.

 

 Недостатки разделения

  1. Многоклавишная операция не поддерживается.
  2. Вы не можете выполнить транзакцию Redis, используя несколько ключей.
  3. Вносит двусмысленность при работе с настойчивостью.
  4. Сокращение или увеличение данных оказывается трудным.

 

Заключение

В этой статье вы узнали о различных механизмах разделения Redis. Ознакомьтесь с документацией, чтобы узнать больше.



2022-04-06T16:26:31
Redis

LUA-скрипты Redis

Redis — это бесплатная размещаемая в памяти база данных с открытым исходным кодом, широко используемая в качестве механизма кэширования или брокера сообщений.

Хотя по умолчанию он очень универсален и обширен, он позволяет расширять функциональные возможности с помощью встроенного интерпретатора Lua. Это означает, что вы можете писать сценарии на Lua для выполнения дополнительных операций с вашей базой данных Redis.

 

Требования

Чтобы лучше следовать этой статьи, мы рекомендуем установить в вашей системе последнюю версию сервера Redis.

Базовые знания Redis полезны для понимания команд, показанных в этой статье.

 

Команда Redis EVAL

Чтобы запускать команды Lua в Redis, вам нужно использовать команду EVAL. Команда указывает Redis выполнять код как сценарий Lua на стороне сервера.

Пример показан ниже:

127.0.0.1:6379> EVAL "redis.call('SET', KEYS[1], ARGV[1])" 1 key value

 

В приведенном выше примере мы начинаем с команды EVAL, за которой следует сценарий Lua. Скрипт использует функцию redis.call. Затем мы передаем команду для запуска, ключ и значение в качестве аргументов. Это похоже на запуск значений ключа SET.

Обратите внимание, что KEYS и ARGV обозначают аргументы скрипта. В этом случае мы указываем количество ключей как 1.

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

Затем мы можем получить доступ к ключам, начиная с индекса 1.

Примечание
Рекомендуется указывать все ключи, используемые в сценарии, в разделе KEYS, а все остальные аргументы — в разделе ARGV.

 

Мы можем получить значение ключа с помощью команды get:

127.0.0.1:6379> EVAL "redis.call('GET', KEYS[1])" 1 key

 

Это должно вернуть значение указанного ключа.

 

Команда Redis EVALSHA

Redis также предоставляет вам команду EVALSHA для вызова команды на основе ее хеш-значения.

Это устраняет необходимость перепечатывать сценарий каждый раз, когда он вам нужен.

Пример:

SCRIPT LOAD "return redis.call('get', KEYS[1])"

 

Приведенная выше команда должна возвращать значение SHA как:

"4e6d8fc8bb01276962cce5371fa795a7763657ae"

 

Затем вы можете использовать это значение sha для вызова команды.

127.0.0.1:6379> EVALSHA 4e6d8fc8bb01276962cce5371fa795a7763657ae 1 key

"value"

 

Чтобы удалить все загруженные скрипты, выполните команду:

127.0.0.1:6379> SCRIPT FLUSH

OK

 

Приведенная выше команда должна очистить кеш скрипта.

 

Заключение

В этой статье описываются самые основные команды, которые можно использовать при работе со сценариями LUA в Redis. Ознакомьтесь с документацией по Lua, чтобы узнать больше.



2022-04-04T17:52:20
Redis

Как получить размер базы данных Redis

Redis невероятно быстр, эффективен и надежен. Кроме того, это мощный инструмент, обеспечивающий механизм кэширования приложений. Это связано с тем, что он хранит данные в памяти, которая не требует обращения к диску.

Однако есть один недостаток. Redis хранит данные в памяти, что может привести к серьезным проблемам с производительностью для больших наборов данных.

Поэтому очень важно отслеживать размер базы данных, хранящейся в экземпляре Redis, и предпринимать необходимые действия.

В этой статье мы узнаем, как определить размер базы данных в Redis.

 

Управление и переключение баз данных Redis

Redis позволяет хранить данные в 16 логических базах данных. Каждой базе данных соответствует определенный индекс, начинающийся с индекса 0. Следовательно, первая база данных имеет индекс 0, а последняя база данных имеет индекс 15.

Каждая база данных изолирована, и изменения в одной базе данных не влияют на другие базы данных в вашем экземпляре.

По умолчанию Redis автоматически подключается к базе данных 0 при входе в систему.

# redis-cli



127.0.0.1:6379>

 

Чтобы переключиться на базу данных по определенному индексу, используйте команду SELECT, за которой следует индекс базы данных, к которому вы хотите получить доступ.

Например, чтобы переключиться на базу данных 10, мы можем сделать следующее:

127.0.0.1:6379> select 10



OK



127.0.0.1:6379[10]>

 

Обратите внимание, что номер вашей текущей выбранной базы данных указан в приглашении терминала. Это применимо только к базам данных выше индекса 0.

 

Массовая вставка данных Redis

Вы можете массово вставлять данные, используя режим конвейера Redis. Например, чтобы вставить файл ip_addresses.txt, используйте следующую команду:

cat ip_addresses.txt | redis-cli --pipe

 

Записи в файле имеют формат:

SET key "value"

Redis Получить размер базы данных

Чтобы получить размер базы данных в Redis, используйте команду DBSIZE. Это возвращает общее количество ключей, хранящихся в текущей выбранной базе данных.

Например:

127.0.0.1:6379> dbsize



(integer) 103

 

Предыдущая команда возвращает количество ключей в базе данных с индексом 0.

Еще одна команда, которую вы можете использовать для получения размера базы данных, — это команда info. Команда info возвращает информацию о вашем экземпляре Redis.

Чтобы отфильтровать размер базы данных, мы можем запросить раздел пространства ключей. Приведен следующий пример:

127.0.0.1:6379> info keyspace



# Keyspace



db0:keys=103,expires=0,avg_ttl=0

 

Команда должна возвращать количество ключей, среднее время жизни и количество ключей с истекающим сроком действия.

 

Заключение

В этой статье подробно описано, как управлять базами данных и переключать их в Redis. Мы также расскажем, как вставлять массовые данные в базу данных Redis и получать размер базы данных. Мы надеемся, что вы нашли эту статью полезной.



2022-04-01T15:53:22
Redis