Подключение к базе данных Redis

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

Как работать с этим мануалом

Это руководство задумано как шпаргалка с примерами. Его не нужно выполнять последовательно – вы можете просто перейти к любому разделу, который имеет отношение к нужной вам задаче.

Команды, использованные в этом мануале, были протестированы на сервере Ubuntu 18.04 и экземпляре Redis версии 4.0.9. Чтобы настроить аналогичную среду, вы можете следовать разделу 1 руководства Установка и защита Redis в Ubuntu 18.04. Мы покажем, как эти ведут себя команды в redis-cli, интерфейсе командной строки Redis. Обратите внимание, что если вы используете другой интерфейс Redis — например, Redli – то вывод некоторых команд будет отличаться.

Подключение к Redis

Если вы работаете с локальной установкой redis-server, вы можете подключиться к экземпляру Redis с помощью команды redis-cli:

redis-cli

Это переведет вас в интерактивный режим redis-cli, который предоставляет REPL (read-eval-print loop), где вы можете запускать встроенные команды Redis и получать ответы.

В интерактивном режиме префикс командной строки изменится: теперь в нем указывается соединение с локальным экземпляром Redis (127.0.0.1) и порт Redis по умолчанию (6379).

127.0.0.1:6379˃

Альтернативой интерактивному режиму Redis является запуск команд в качестве  аргументов команды redis-cli. Делается это так:

redis-cli redis_command

Если вы хотите подключиться к удаленному хранилищу данных Redis, вы можете указать хосты и номера портов с помощью флагов -h и -p. Если вы настроили аутентификацию Redis, вы можете включить флаг -a и указать ваш пароль:

redis-cli -h host -p port_number -a password

Если вы установили пароль Redis, клиенты смогут подключаться к базе данных, даже если они не включат флаг -a в свою команду redis-cli. Однако они не смогут добавлять, изменять или запрашивать данные до тех пор, пока не пройдут аутентификацию. Чтобы пройти аутентификацию после подключения, используйте команду auth и укажите пароль:

auth password

Если пароль, переданный в команде auth, действителен, команда вернет OK. В противном случае она вернет ошибку.

Если вы работаете с управляемой базой данных Redis, ваш облачный провайдер может предоставить вам URI, начинающийся с redis:// или rediss://, который вы можете использовать для доступа к вашему хранилищу данных. Если строка подключения начинается с redis://, вы можете включить ее в качестве аргумента в redis-cli.

Однако если строка подключения начинается с rediss://, то вашей управляемой базе данных требуются соединения по TLS/SSL. Команда redis-cli не поддерживает соединения TLS, поэтому для соединения по URI вам нужно использовать другой инструмент с поддержкой этого протокола – например, Redli.

Используйте следующий синтаксис для подключения к базе данных с помощью Redli. Обратите внимание, этот пример включает опцию —tls, которая указывает, что соединение должно быть установлено через TLS, и флаг -u, который объявляет, что следующий аргумент содержит URI соединения:

redli --tls -u rediss://connection_URI

Если вы попытаетесь подключиться к несуществующему экземпляру, redis-cli перейдет в отключенный режим. Командная строка будет отражать это:

not connected˃

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

Тестирование соединений

Команда ping позволяет проверить работоспособность соединения с базой данных. Обратите внимание: это внутренняя команда Redis, а не сетевая утилита ping. Но работают эти две команды одинаково – обе они используются для проверки соединения между двумя машинами.

Если соединение установлено, а команда ping запущена без аргументов, она вернет PONG:

ping
PONG

Если вы предоставите команде аргумент, она вернет этот аргумент вместо PONG, если соединение установлено:

ping "hello Redis!"
"hello Redis!"

Если вы запустите ping или любую другую команду в отключенном режиме, вы увидите подобный вывод:

ping
Could not connect to Redis at host:port: Connection refused

Обратите внимание, ping также используется в Redis для измерения задержки.

Читайте также: Анализ производительности сервера Redis на Ubuntu 18.04

Отключение от Redis

Чтобы отключиться от экземпляра Redis, используйте команду quit:

quit

Команда exit также завершит соединение:

exit

Обе эти команды закрывают соединение, но только после того, как все ожидающие ответы будут записаны на клиентах.

Заключение

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

Tags: , ,