Поиск по сайту:
Хорошего правителя справедливо уподобляют кучеру (К. Прутков).

Запрос Redis из Python

15.12.2021
Запрос Redis из Python

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

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

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

 

Установка Redis

Первый шаг – настроить инструменты разработки. В этой статье мы будем использовать систему Debian 11 Linux.

Откройте терминал и добавьте официальные репозитории Redis как:

sudo apt-get update
sudo apt-get install curl gnupg -y
curl https://packages.redis.io/gpg | sudo apt-key add -
echo "deb https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis -y

 

После установки Redis запустите сервер с помощью команды.

redis-server

 

Вы также можете использовать systemctl для запуска сервера Redis с помощью команды, как показано ниже:

sudo service redis-server start

Основы Redis

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

 

Подключение к кластеру.

После запуска сервера Redis откройте новый сеанс терминала и введите клиент командной строки Redis как:

$ redis-cli
127.0.0.1:6379>

 

После того, как вы запустите команду redis-cli, вы должны получить приглашение, показывающее IP-адрес и порт для сервера Redis.

 

Читать  Как установить и использовать Docker Compose в Debian 10 Linux

Переключение «баз данных»

Redis не работает как обычная реляционная база данных. Тем не менее, он содержит концепцию баз данных, которые представляют собой изолированные наборы пар ключ-значение. В отличие от базы данных в реляционных базах данных, в Redis база данных не имеет схем, таблиц или строк.

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

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

Например, чтобы выбрать базу данных 10.

127.0.0.1:6379[1]> SELECT 9
OK

 

Примечание. Индексы базы данных в Redis начинаются с 0 до 15. Если вы попытаетесь получить доступ к индексу выше 16, вы получите ошибку вне допустимого диапазона.

127.0.0.1:6379[15]> SELECT 16
(error) ERR DB index is out of range

Установка значений

Как мы уже упоминали, Redis использует нотацию «ключ-значение» для хранения данных. Вы можете добавить новые данные с помощью команды SET, разделив ключ и значения пробелом.

Например:

SET name "John"
OK

 

Если команда Redis выполняется успешно, вы должны увидеть [OK].

Хорошо убедиться, что вы указали ключ и значение в команде SET. В противном случае вы получите ошибку с неправильным количеством аргументов, как показано:

127.0.0.1:6379[15]> SET novalue
(error) ERR wrong number of arguments for 'set' command

 

Получение значений

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

GET name
"John"

 

Читать  Как настроить sources.list на Debian 9

Убедитесь, что указанный ключ существует на сервере. Если вы укажете несуществующий ключ, вы получите нулевой результат как:

GET nothere
(nil)

Удаление ключей

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

Например:

DEL name
(integer) 1

Использование Python для работы с Redis

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

Вы можете просмотреть каталог клиентов Redis для поиска подходящей библиотеки.

https://redis.io/clients#python

 

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

 

Установка Python 3

Прежде чем продолжить, убедитесь, что в вашей системе установлен Python. Откройте терминал и введите команду:

python3 --version
-bash: Python: command not found

 

Если вы получаете сообщение об ошибке «команда не найдена», вам необходимо установить Python.

Используйте команды:

sudo apt update
sudo apt install python3.9

 

Приведенные выше команды обновят репозитории программного обеспечения и установят версию Python 3.9. После завершения убедитесь, что у вас правильная версия Python.

python3 --version
Python 3.9.2

Установить Pip

Чтобы установить пакет redis-py, нам нужно убедиться, что у нас установлен pip. Откройте терминал и введите команду:

sudo apt-get install python3-pip

Установка Redis-Py

После установки pip3 введите команду ниже, чтобы установить пакет redis-py.

sudo pip3 install redis

 

Использование пакета Redis-Py.

Чтобы проиллюстрировать, как работать с Redis с помощью пакета Python, мы реплицируем операции из раздела основ Redis.

Читать  Список всех установленных пакетов с помощью apt на Debian 9

Начнем с подключения к Redis.

Создайте файл Python и добавьте показанный ниже код для подключения к кластеру Redis.

import redis
# create connection to the redis cluster
r = redis.Redis(host='localhost', port=6379)

 

Как только у нас будет соединение с сервером, мы можем приступить к выполнению операций.

ПРИМЕЧАНИЕ. Файл будет подключаться к базе данных с индексом 0. Вы можете указать целевой индекс, установив параметр db как:

r = redis.Redis(host='localhost', port=6379, db=10)

 

В приведенном выше примере будет выполнено подключение к базе данных с индексом 10.

Чтобы создать пару ключ-значение с помощью пакета Python, вы можете:

r.set("name", "John Doe")

 

Строка выше примет первые аргументы как ключ и значение соответственно.

Чтобы получить значения, используйте функцию get как:

r.get("name")
print name

 

Вышеупомянутый запрос вернет значение в указанном ключе в виде закодированного значения:

b'John Doe'

 

Вы можете использовать функцию декодирования для декодирования значения.

print (name.decode())
John Doe

 

Чтобы удалить ключ и соответствующие данные, используйте функцию удаления, как показано:

r.delete("name")

 

Если вы получите значение, хранящееся в удаленном ключе, Python вернет значение None.

 

Вывод

В этой статье мы подробно рассмотрим работу с базой данных Redis. Redis – мощный инструмент, который может оказаться незаменимым в высокопроизводительных средах. Изучите документацию, чтобы узнать, как работать с Redis и пакетом Redis-Py.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Если вы тот, кто переключился с веб-сайта на мобильное устройство…

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: