Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Valkey™
  • Начало работы
    • Все инструкции
      • Подготовка к подключению
      • Подключение к нешардированному кластеру
      • Подключение к шардированному кластеру
      • Запросы в Yandex WebSQL
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Особые FQDN
  • Текущий мастер
  • Подключение из графических IDE
  • Подготовка к подключению из Docker-контейнера
  • Примеры строк подключения
  • Bash
  • Go
  • Java
  • Node.js
  • PHP
  • Python
  • Ruby
  1. Пошаговые инструкции
  2. Базы данных
  3. Подключение к нешардированному кластеру

Подключение к нешардированному кластеру Valkey™

Статья создана
Yandex Cloud
Улучшена
Dmitry A.
Обновлена 16 января 2025 г.
  • Особые FQDN
    • Текущий мастер
  • Подключение из графических IDE
  • Подготовка к подключению из Docker-контейнера
  • Примеры строк подключения
    • Bash
    • Go
    • Java
    • Node.js
    • PHP
    • Python
    • Ruby

К нешардированному кластеру Valkey™ можно подключиться:

  • С помощью Valkey™ Sentinel.

    Valkey™ Sentinel — это система управления хостами Valkey™, позволяющая проводить мониторинг, отправлять уведомления о состояниях хостов, переключать мастер и передавать клиентам актуальные адреса хостов.

    Поддерживается нешифрованное соединение через порт 26379 для кластеров с любой версией Valkey™.

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

    Подробнее о Sentinel см. в разделе Репликация и отказоустойчивость и документации Valkey™.

  • Напрямую к мастеру.

    Поддерживаются шифрованное соединение через порт 6380 и нешифрованное через порт 6379.

    Важно

    Используя SSL-соединение, можно подключаться только к кластерам с включенной настройкой Поддержка TLS.

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

Особые FQDNОсобые FQDN

Yandex Managed Service for Valkey™ предоставляет особые FQDN, которые можно использовать вместо обычных FQDN хостов для подключения к нешардированному кластеру.

Важно

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

Текущий мастерТекущий мастер

FQDN вида c-<идентификатор_кластера>.rw.mdb.yandexcloud.net в нешардированном кластере всегда указывает на текущий хост-мастер. Идентификатор кластера можно запросить со списком кластеров в каталоге.

При подключении к этому FQDN разрешено выполнять операции чтения и записи.

Пример подключения с SSL-шифрованием к хосту-мастеру для кластера с идентификатором c9qash3nb1v9********:

redis-cli -h c-c9qash3nb1v9********.rw.mdb.yandexcloud.net \
  -p 6380 \
  --tls \
  --cacert ~/.redis/YandexInternalRootCA.crt \
  -a <пароль_Valkey™>

Подключение из графических IDEПодключение из графических IDE

Подключение проверялось в следующем окружении:

  • MacOS Big Sur 11.3.
  • DBeaver Enterprise: 21.0.

Подключаться из графических IDE к хостам кластера можно только через SSH-туннель с помощью созданной ВМ. Перед подключением подготовьте сертификат.

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

DBeaver

Поддержка подключения к кластеру Valkey™ доступна только в коммерческих редакциях DBeaver.

Чтобы подключиться к кластеру:

  1. Создайте новое соединение с БД:
    1. Выберите в меню База данных пункт Новое соединение.
    2. Выберите из списка БД Valkey™.
    3. Нажмите кнопку Далее.
    4. Укажите параметры подключения на вкладке Главное:
      • Хост — FQDN хоста-мастера или особый FQDN, всегда указывающий на текущий хост-мастер.
      • Порт — 6379 для обычного кластера или 6380 для кластера с включенным SSL-шифрованием.
      • В блоке Аутентификация укажите пароль от кластера.
    5. На вкладке SSH:
      1. Включите настройку Использовать туннель SSH.
      2. Укажите параметры SSH-туннеля:
        • Хост/IP — публичный IP-адрес ВМ для подключения;
        • Имя пользователя — логин для подключения к ВМ;
        • Метод аутентификации — Публичный ключ;
        • Секретный ключ — путь к файлу закрытого ключа для подключения к ВМ;
        • Passphrase — пароль от закрытого ключа.
    6. На вкладке SSL:
      1. Включите настройки Использовать SSL и Пропустить валидацию имени хоста.
      2. В блоке Параметры:
        1. Выберите Способ — Набор сертификатов.
        2. В поле Корневой сертификат укажите путь к сохраненному файлу SSL-сертификата.
  2. Нажмите кнопку Тест соединения ... для проверки соединения с БД. При успешном подключении будет выведен статус подключения, информация о СУБД и драйвере.
  3. Нажмите кнопку Готово, чтобы сохранить настройки соединения с БД.

Подготовка к подключению из Docker-контейнераПодготовка к подключению из Docker-контейнера

Чтобы подключаться к кластеру Yandex Managed Service for Valkey™ из Docker-контейнера, добавьте в Dockerfile строки:

Подключение без SSL
Подключение с SSL
# Собрать вручную утилиту 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

Примеры строк подключенияПримеры строк подключения

Примеры для Linux проверялись в следующем окружении:

  • Виртуальная машина в Yandex Cloud с Ubuntu 20.04 LTS.
  • Bash: 5.0.16.
  • Python: 3.8.2; pip3: 20.0.2.
  • PHP: 7.4.3.
  • OpenJDK: 11.0.8; Maven: 3.6.3.
  • Node.JS: 10.19.0, npm: 6.14.4.
  • Go: 1.13.8.
  • Ruby: 2.7.0p0.
  • unixODBC: 2.3.6.

Примеры для Windows проверялись в следующем окружении:

  • Локальная машина с Windows 10 Pro build 19042.1052.
  • PowerShell: 5.1.19041.
  • cURL: 7.55.1 WinSSL.

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

BashBash

Подключение без SSL
Подключение с SSL

Перед подключением установите зависимости:

sudo apt update && sudo apt install -y redis-tools

Подключение с помощью Sentinel:

  1. Получите адрес хоста-мастера, используя Sentinel и любой хост Valkey™:

    redis-cli \
        -h <FQDN_любого_хоста_Valkey™> \
        -p 26379 \
        sentinel \
        get-master-addr-by-name <имя_кластера_Valkey™> | head -n 1
    
  2. Подключитесь к хосту с этим адресом:

    redis-cli \
        -h <адрес_хоста-мастера_Valkey™> \
        -a <пароль_Valkey™>
    

Подключение напрямую к мастеру:

redis-cli \
    -h c-<идентификатор_кластера>.rw.mdb.yandexcloud.net \
    -a <пароль>

Перед подключением установите зависимости:

Соберите утилиту redis-tools с поддержкой TLS одним из двух способов::

  • Из репозитория

    1. Подключите репозиторий:

      sudo apt-add-repository ppa:redislabs/redis
      

      Пакеты в этом репозитории уже собраны с флагом BUILD_TLS=yes.

    2. Установите утилиту:

      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

О том, как получить FQDN хоста, см. инструкцию.

После подключения к кластеру выполните команды:

SET foo bar
GET foo

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

GoGo

Перед подключением установите зависимости:

sudo apt update && sudo apt install --yes golang git && \
go mod init github.com/go-redis/redis && \
go get github.com/go-redis/redis/v7
Подключение без SSL
Подключение с SSL

Пример кода для подключения с помощью Sentinel:

connect.go

package main

import (
	"fmt"
	"github.com/go-redis/redis/v7"
)

func main() {
	conn := redis.NewUniversalClient(
		&redis.UniversalOptions{
			Addrs: []string{
				"<FQDN_хоста_1_Valkey™>:26379",
				...
				"<FQDN_хоста_N_Valkey™>:26379"},
			MasterName: "<имя_кластера_Valkey™>",
			Password:   "<пароль>",
			ReadOnly:   false,
		},
	)
	err := conn.Set("foo", "bar", 0).Err()
	if err != nil {
		panic(err)
	}

	result, err := conn.Get("foo").Result()
	if err != nil {
		panic(err)
	}
	fmt.Println(result)

	conn.Close()
}

Пример кода для подключения напрямую к мастеру:

connect.go

package main

import (
	"fmt"
	"github.com/go-redis/redis/v7"
)

func main() {
	conn := redis.NewUniversalClient(
		&redis.UniversalOptions{
			Addrs:    []string{"c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:6379"},
			Password: "<пароль>",
			ReadOnly: false,
		},
	)
	err := conn.Set("foo", "bar", 0).Err()
	if err != nil {
		panic(err)
	}

	result, err := conn.Get("foo").Result()
	if err != nil {
		panic(err)
	}
	fmt.Println(result)

	conn.Close()
}

connect.go

package main

import (
	"crypto/tls"
	"crypto/x509"
	"fmt"
	"github.com/go-redis/redis/v7"
	"io/ioutil"
)

const (
	cert = "/home/<домашняя_директория>/.redis/YandexInternalRootCA.crt"
)

func main() {
	rootCertPool := x509.NewCertPool()
	pem, err := ioutil.ReadFile(cert)
	if err != nil {
		panic(err)
	}

	if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {
		panic("Failed to append PEM.")
	}

	conn := redis.NewUniversalClient(
		&redis.UniversalOptions{
			Addrs:    []string{"c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:6380"},
			Password: "<пароль>",
			ReadOnly: false,
			TLSConfig: &tls.Config{
				RootCAs:            rootCertPool,
			},
		},
	)
	err = conn.Set("foo", "bar", 0).Err()
	if err != nil {
		panic(err)
	}

	result, err := conn.Get("foo").Result()
	if err != nil {
		panic(err)
	}
	fmt.Println(result)

	conn.Close()
}

О том, как получить FQDN хоста, см. инструкцию.

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

go run connect.go

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

JavaJava

Перед подключением:

  1. Установите зависимости:

    sudo apt update && sudo apt install --yes default-jdk maven
    
  2. Создайте директорию для проекта Maven:

    cd ~/ && mkdir --parents project/src/java/com/example && cd project/
    
  3. Создайте конфигурационный файл для Maven:

    pom.xml
    <?xml version="1.0" encoding="utf-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.example</groupId>
      <artifactId>app</artifactId>
      <packaging>jar</packaging>
      <version>0.1.0</version>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
      <dependencies>
        <dependency>
          <groupId>redis.clients</groupId>
          <artifactId>jedis</artifactId>
          <version>3.7.0</version>
        </dependency>
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-simple</artifactId>
          <version>1.7.30</version>
        </dependency>
      </dependencies>
      <build>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <sourceDirectory>src</sourceDirectory>
        <resources>
          <resource>
            <directory>src</directory>
          </resource>
        </resources>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>attached</goal>
                </goals>
                <phase>package</phase>
                <configuration>
                  <descriptorRefs>
                    <descriptorRef>
                    jar-with-dependencies</descriptorRef>
                  </descriptorRefs>
                  <archive>
                    <manifest>
                      <mainClass>com.example.App</mainClass>
                    </manifest>
                  </archive>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
              <archive>
                <manifest>
                  <mainClass>com.example.App</mainClass>
                </manifest>
              </archive>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </project>
    

    Актуальные версии зависимостей для Maven:

    • jedis
    • slf4j-simple
  4. Для подключения с SSL:

    1. Получите SSL-сертификат.

    2. Создайте защищенное хранилище сертификатов:

      keytool -importcert \
              -alias YARootCrt \
              -file ~/.redis/YandexInternalRootCA.crt \
              -keystore ~/.redis/YATrustStore \
              -storepass <пароль_защищенного_хранилища> \
              --noprompt && chmod 0655 ~/.redis/YATrustStore
      
Подключение без SSL
Подключение с SSL

Пример кода для подключения с помощью Sentinel:

src/java/com/example/App.java

package com.example;

import java.util.HashSet;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisSentinelPool;

public class App {
  public static void main(String[] args) {
    String redisName = "<имя_кластера_Valkey™>";
    String redisPass = "<пароль>";

    HashSet sentinels = new HashSet();
    sentinels.add("<FQDN_хоста_1_Valkey™>:26379");
    ...
    sentinels.add("<FQDN_хоста_N_Valkey™>:26379");

    try {
      JedisSentinelPool pool = new JedisSentinelPool(redisName, sentinels);
      Jedis conn = pool.getResource();

      conn.auth(redisPass);
      conn.set("foo", "bar");
      System.out.println(conn.get("foo"));

      pool.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

Пример кода для подключения напрямую к мастеру:

src/java/com/example/App.java

package com.example;

import redis.clients.jedis.Jedis;

public class App {
  public static void main(String[] args) {
    String redisHost = "c-<идентификатор_кластера>.rw.mdb.yandexcloud.net";
    String redisPass = "<пароль>";

    try {
      Jedis conn = new Jedis(redisHost);

      conn.auth(redisPass);
      conn.set("foo", "bar");
      System.out.println(conn.get("foo"));

      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

src/java/com/example/App.java

package com.example;

import redis.clients.jedis.DefaultJedisClientConfig;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;

import javax.net.ssl.SSLParameters;

public class App {
  public static void main(String[] args) {
    String redisHost = "c-<идентификатор_кластера>.rw.mdb.yandexcloud.net";
    String redisPass = "<пароль_кластера>";

    System.setProperty("javax.net.ssl.trustStore", "/home/<домашняя_директория>/.redis/YATrustStore");
    System.setProperty("javax.net.ssl.trustStorePassword", "<пароль_защищенного_хранилища_сертификатов>");

    SSLParameters sslParameters = new SSLParameters();
    DefaultJedisClientConfig jedisClientConfig = DefaultJedisClientConfig.builder().
            password(redisPass).
            ssl(true).
            sslParameters(sslParameters).
            build();

    try {
      Jedis conn = new Jedis(new HostAndPort(redisHost, 6380), jedisClientConfig);

      conn.set("foo", "bar");
      System.out.println(conn.get("foo"));
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

О том, как получить FQDN хоста, см. инструкцию.

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

mvn clean package && \
java -jar target/app-0.1.0-jar-with-dependencies.jar

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

Node.jsNode.js

Перед подключением установите зависимости:

sudo apt update && sudo apt install --yes nodejs npm && \
npm install ioredis
Подключение без SSL
Подключение с SSL

Пример кода для подключения с помощью Sentinel:

app.js

"use strict";
const Redis = require("ioredis");

const conn = new Redis({
    sentinels: [
        { host: "<FQDN_хоста_1_Valkey™>", port: 26379 },
        ...
        { host: "<FQDN_хоста_N_Valkey™>", port: 26379 },
    ],
    name: "<имя_кластера_Valkey™>",
    password: "<пароль>"
});

conn.set("foo", "bar", function (err) {
    if (err) {
        console.error(err);
        conn.disconnect();
    }
});

conn.get("foo", function (err, result) {
    if (err) {
        console.error(err);
    } else {
        console.log(result);
    }

    conn.disconnect();
});

Пример кода для подключения напрямую к мастеру:

app.js

"use strict";

const Redis = require("ioredis");

const conn = new Redis({
    host: "c-<идентификатор_кластера>.rw.mdb.yandexcloud.net",
    port: 6379,
    password: "<пароль>"
});

conn.set("foo", "bar", function (err) {
    if (err) {
        console.error(err);
        conn.disconnect();
    }
});

conn.get("foo", function (err, result) {
    if (err) {
        console.error(err);
    } else {
        console.log(result);
    }

    conn.disconnect();
});

app.js

"use strict";

const fs = require("fs");
const Redis = require("ioredis");

const conn = new Redis({
    host: "c-<идентификатор_кластера>.rw.mdb.yandexcloud.net",
    port: 6380,
    password: "<пароль>",
    tls: {
        ca: fs.readFileSync("/home/<домашняя_директория>/.redis/YandexInternalRootCA.crt"),
    }
});

conn.set("foo", "bar", function (err) {
    if (err) {
        console.error(err);
        conn.disconnect();
    }
});

conn.get("foo", function (err, result) {
    if (err) {
        console.error(err);
    } else {
        console.log(result);
    }

    conn.disconnect();
});

О том, как получить FQDN хоста, см. инструкцию.

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

node app.js

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

PHPPHP

Перед подключением установите зависимости:

sudo apt update && sudo apt install --yes php php-dev php-pear && \
sudo pear channel-discover pear.nrk.io && \
sudo pear install nrk/Predis
Подключение без SSL
Подключение с SSL

Пример кода для подключения с помощью Sentinel:

connect.php

<?php
require "Predis/Autoloader.php";
Predis\Autoloader::register();

$sentinels = [
    "<FQDN_хоста_1_Valkey™>:26379>",
    ...
    "<FQDN_хоста_N_Valkey™>:26379>",
];
$options = [
    "replication" => "sentinel",
    "service" => "<имя_кластера_Valkey™>",
    "parameters" => [
        "password" => "<пароль>",
    ],
];

$conn = new Predis\Client($sentinels, $options);

$conn->set("foo", "bar");
var_dump($conn->get("foo"));

$conn->disconnect();
?>

Пример кода для подключения напрямую к мастеру:

connect.php

<?php
require "Predis/Autoloader.php";
Predis\Autoloader::register();

$host = ["c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:6379"];
$options = [
    "parameters" => [
        "password" => "<пароль>",
    ],
];

$conn = new Predis\Client($host, $options);

$conn->set("foo", "bar");
var_dump($conn->get("foo"));

$conn->disconnect();
?>

connect.php

<?php
require "Predis/Autoloader.php";
Predis\Autoloader::register();

$host = ["c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:6380"];
$options = [
    "parameters" => [
        "scheme" => "tls",
        "ssl" => [
            "cafile" => "/home/<домашняя_директория>/.redis/YandexInternalRootCA.crt",
            "verify_peer" => true,
            "verify_peer_name" => false,
        ],
        "password" => "<пароль>",
    ],
];

$conn = new Predis\Client($host, $options);

$conn->set("foo", "bar");
var_dump($conn->get("foo"));

$conn->disconnect();
?>

О том, как получить FQDN хоста, см. инструкцию.

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

php connect.php

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

PythonPython

Перед подключением установите зависимости:

sudo apt update && sudo apt install -y python3 python3-pip && \
pip3 install redis
Подключение без SSL
Подключение с SSL

Пример кода для подключения с помощью Sentinel:

connect.py

from redis.sentinel import Sentinel

sentinels = [
    "<FQDN_хоста_1_Valkey™>",
    ...
    "<FQDN_хоста_N_Valkey™>"
]
name = "<имя_кластера_Valkey™>"
pwd = "<пароль>"

sentinel = Sentinel([(h, 26379) for h in sentinels], socket_timeout=0.1)
master = sentinel.master_for(name, password=pwd)
slave = sentinel.slave_for(name, password=pwd)

master.set("foo", "bar")
print(slave.get("foo"))

Пример кода для подключения без использования SSL-соединения напрямую к мастеру:

connect.py

import redis

r = redis.StrictRedis(
    host="c-<идентификатор_кластера>.rw.mdb.yandexcloud.net",
    port=6379,
    password="<пароль>",
)

r.set("foo", "bar")
print(r.get("foo"))

connect.py

import redis

r = redis.StrictRedis(
    host="c-<идентификатор_кластера>.rw.mdb.yandexcloud.net",
    port=6380,
    password="<пароль>",
    ssl=True,
    ssl_ca_certs="/home/<домашняя_директория>/.redis/YandexInternalRootCA.crt",
)

r.set("foo", "bar")
print(r.get("foo"))

О том, как получить FQDN хоста, см. инструкцию.

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

python3 connect.py

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

RubyRuby

Перед подключением установите зависимости:

sudo apt update && sudo apt install --yes ruby && \
sudo gem install redis
Подключение без SSL
Подключение с SSL

Пример кода для подключения с помощью Sentinel:

connect.rb

# coding: utf-8

require 'redis'

SENTINELS = [
  { host: '<FQDN_хоста_1_Valkey™>', port: 26379 },
  ...
  { host: '<FQDN_хоста_N_Valkey™>', port: 26379 }
]

conn = Redis.new(
  host: '<имя_кластера_Valkey™>',
  sentinels: SENTINELS,
  role: 'master',
  password: '<пароль>'
)

conn.set('foo', 'bar')
puts conn.get('foo')

conn.close

Пример кода для подключения без использования SSL-соединения напрямую к мастеру:

connect.rb

# coding: utf-8

require 'redis'

conn = Redis.new(
  host: 'c-<идентификатор_кластера>.rw.mdb.yandexcloud.net',
  port: 6379,
  password: '<пароль>'
)

conn.set('foo', 'bar')
puts conn.get('foo')

conn.close

connect.rb

# coding: utf-8

require 'redis'

conn = Redis.new(
  host: 'c-<идентификатор_кластера>.rw.mdb.yandexcloud.net',
  port: 6380,
  password: '<пароль>',
  ssl: true,
  ssl_params: { ca_file: '/home/<домашняя_директория>/.redis/YandexInternalRootCA.crt' },
)

conn.set('foo', 'bar')
puts conn.get('foo')

conn.close

О том, как получить FQDN хоста, см. инструкцию.

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

ruby connect.rb

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

Была ли статья полезна?

Предыдущая
Подготовка к подключению
Следующая
Подключение к шардированному кластеру
Проект Яндекса
© 2025 ООО «Яндекс.Облако»