Поиск по сайту:
Метафизические системы для философов — то же, что романы для женщин (Ф. Вольтер).

Запрос 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.

 

Читать  Какой язык программирования выбрать новичку?

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

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"

 

Читать  Как выучить Python (шаг за шагом) к 2021 году. Часть 2

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

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.

Читать  Как проверить связь с определенным портом

Начнем с подключения к 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 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

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


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

Спасибо!

Теперь редакторы в курсе.