Подключение к кластеру Valkey™ из приложений
К кластеру Valkey™ можно подключиться с помощью инструментов командной строки, из графических IDE и Docker-контейнера. О подключении из кода вашего приложения см. Примеры кода.
Инструменты командной строки
Примеры кода с заполненным FQDN хоста доступны в консоли управления
Способ настройки зависит от того, включено ли в кластере шардирование.
redis-cli
Для кластеров Valkey™ поддерживается шифрованное соединение через порт 6380 и нешифрованное через порт 6379.
Важно
Используя SSL-соединение, можно подключаться только к кластерам с включенной настройкой Поддержка TLS.
Чтобы всегда подключаться к мастеру в нешардированном кластере, воспользуйтесь особым FQDN, который всегда указывает на мастер, либо отслеживайте роли всех хостов кластера самостоятельно.
-
Перед подключением установите зависимости:
sudo apt update && sudo apt install -y redis-tools -
Подключитесь напрямую к мастеру:
-
нешардированного кластера:
redis-cli \ -h c-<идентификатор_кластера>.rw.mdb.yandexcloud.net \ -a <пароль> -
шардированного кластера:
redis-cli \ -c \ -h <FQDN_хоста-мастера_в_нужном_шарде> \ -a <пароль>
-
-
Перед подключением установите зависимости:
Соберите утилиту
redis-toolsс поддержкой TLS одним из двух способов:-
Из репозитория
-
Подключите репозиторий:
sudo apt-add-repository ppa:redislabs/redisПакеты в этом репозитории уже собраны с флагом
BUILD_TLS=yes. -
Установите утилиту:
sudo apt update && sudo apt install -y redis-tools
-
-
Вручную
Перейдите в директорию, куда хотите скачать дистрибутив. Скачайте стабильную версию утилиты и выполните сборку и установку:
wget https://download.redis.io/redis-stable.tar.gz && \ tar -xzvf redis-stable.tar.gz && \ cd redis-stable && \ make BUILD_TLS=yes && \ sudo make install && \ sudo cp ./src/redis-cli /usr/bin/
-
-
Подключитесь напрямую к мастеру:
-
нешардированного кластера:
redis-cli \ -h c-<идентификатор_кластера>.rw.mdb.yandexcloud.net \ -a <пароль> \ -p 6380 \ --tls \ --cacert ~/.redis/YandexInternalRootCA.crt -
шардированного кластера:
redis-cli \ -c \ -h <FQDN_хоста-мастера_в_нужном_шарде> \ -a <пароль> \ -p 6380 \ --tls \ --cacert ~/.redis/YandexInternalRootCA.crt \
-
О том, как получить FQDN хоста, см. инструкцию.
После подключения к кластеру выполните команды:
SET foo bar
GET foo
При успешном подключении к кластеру и выполнении тестового запроса будет выведена строка bar.
Valkey™ Sentinel
Valkey™ Sentinel — это система управления хостами Valkey™, позволяющая проводить мониторинг, отправлять уведомления о состояниях хостов, переключать мастер и передавать клиентам актуальные адреса хостов.
Для нешардированных кластеров поддерживается нешифрованное соединение через порт 26379 с любой версией Valkey™.
Если клиентское приложение не поддерживает подключение через Sentinel, подключитесь напрямую к мастеру. Если в прямом подключении нет необходимости, используйте Sentinel для более надежной работы с хостами кластера:
-
Перед подключением установите зависимости:
sudo apt update && sudo apt install -y redis-tools -
Получите адрес хоста-мастера, используя Sentinel и любой хост Valkey™:
redis-cli \ -h <FQDN_любого_хоста_Valkey™> \ -p 26379 \ sentinel \ get-master-addr-by-name <имя_кластера_Valkey™> | head -n 1 -
Подключитесь к хосту с этим адресом:
redis-cli \ -h <адрес_хоста-мастера_Valkey™> \ -a <пароль_Valkey™>
О том, как получить FQDN хоста, см. инструкцию.
После подключения к кластеру выполните команды:
SET foo bar
GET foo
При успешном подключении к кластеру и выполнении тестового запроса будет выведена строка bar.
Подробнее о Sentinel см. в разделе Репликация и отказоустойчивость и документации Valkey™
Подключение из графических IDE
Подключение проверялось в следующем окружении:
- MacOS Big Sur 11.3.
- DBeaver Enterprise:
21.0.
Подключаться из графических IDE к хостам кластера можно только через SSH-туннель с помощью созданной ВМ. Перед подключением подготовьте сертификат.
Чтобы избежать ошибок при подключении, сохраните сертификат
Поддержка подключения к кластеру Valkey™ доступна только в коммерческих редакциях DBeaver
Чтобы подключиться к кластеру:
- Создайте новое соединение с БД:
- Выберите в меню База данных пункт Новое соединение.
- Выберите из списка БД Valkey™.
- Нажмите кнопку Далее.
- Укажите параметры подключения на вкладке Главное:
- Хост — FQDN хоста-мастера или особый FQDN, всегда указывающий на текущий хост-мастер.
При подключении к шардированному кластеру укажите через запятую FQDN хостов-мастеров каждого шарда. - Порт —
6379для обычного кластера или6380для кластера с включенным SSL-шифрованием. - В блоке Аутентификация укажите пароль от кластера.
- Хост — FQDN хоста-мастера или особый FQDN, всегда указывающий на текущий хост-мастер.
- На вкладке SSH:
- Включите настройку Использовать туннель SSH.
- Укажите параметры SSH-туннеля:
- Хост/IP — публичный IP-адрес ВМ для подключения;
- Имя пользователя — логин для подключения к ВМ;
- Метод аутентификации —
Публичный ключ; - Секретный ключ — путь к файлу закрытого ключа для подключения к ВМ;
- Passphrase — пароль от закрытого ключа.
- На вкладке SSL:
- Включите настройки Использовать SSL и Пропустить валидацию имени хоста.
- В блоке Параметры:
- Выберите Способ — Набор сертификатов.
- В поле Корневой сертификат укажите путь к сохраненному файлу SSL-сертификата.
- Нажмите кнопку Тест соединения ... для проверки соединения с БД. При успешном подключении будет выведен статус подключения, информация о СУБД и драйвере.
- Нажмите кнопку Готово, чтобы сохранить настройки соединения с БД.
Подготовка к подключению из Docker-контейнера
Чтобы подключаться к кластеру Yandex Managed Service for Valkey™ из Docker-контейнера, добавьте в Dockerfile строки:
# Собрать вручную утилиту redis-tools с поддержкой TLS.
RUN apt-get update && \
apt-get install make gcc libssl-dev --yes && \
wget https://download.redis.io/redis-stable.tar.gz && \
tar -xzvf redis-stable.tar.gz && \
cd redis-stable && \
make BUILD_TLS=yes MALLOC=libc && \
make install && \
cp ./src/redis-cli /usr/bin/
# Собрать вручную утилиту redis-tools с поддержкой TLS.
RUN apt-get update && \
apt-get install wget make gcc libssl-dev --yes && \
wget https://download.redis.io/redis-stable.tar.gz && \
tar -xzvf redis-stable.tar.gz && \
cd redis-stable && \
make BUILD_TLS=yes MALLOC=libc && \
make install && \
cp ./src/redis-cli /usr/bin/ && \
# Получить SSL-сертификат.
mkdir --parents ~/.redis && \
wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" \
--output-document ~/.redis/YandexInternalRootCA.crt && \
chmod 0655 ~/.redis/YandexInternalRootCA.crt