Подключиться к кластеру Redis
К кластеру Redis можно подключиться:
- через Docker;
- программный код с SSL и без SSL.
Для всех способов доступно подключение с SSL-сертификатом.
При подключении укажите порт и адрес.
Порты для подключения
Для подключения к Redis используйте порты:
- 6380 — порт для подключения с SSL-сертификатом;
- 6379 — порт для подключения без SSL-сертификата (доступно только для кластеров в приватной подсети).
Адреса для подключения
Адрес для подключения зависит от подсети кластера и от того, откуда вы подключаетесь. Вы можете выбрать адрес в зависимости от одного из сценариев:
- подключение к кластеру в публичной подсети;
- подключение из приватной подсети к кластеру в приватной подсети;
- подключение из интернета к кластеру в приватной подсети.

Подключение к кластеру в публичной подсети
Если кластер в публичной подсети, к нодам можно подключиться по DNS-адресу или IP-адресу из публичной подсети.
Мы рекомендуем подключаться по DNS-адресу. Для DNS-адресов в кластере используется механизм master discovery — адрес привязан к роли ноды, а не к самой ноде. При недоступности мастера одна из реплик становится новым мастером и адрес переходит на новую ноду вместе с ролью.
При подключении по IP-адресу из публичной подсети механизм master discovery не используется. Если одна из реплик станет новым мастером, IP-адрес мастера изменится и подключение по старому IP-адресу перестанет работать.
Вы можете посмотреть адрес для подключения в панели управления.
Подключение из приватной подсети к кластеру в приватной подсети
Если вы подключаетесь из приватной подсети к кластеру в приватной подсети, можно использовать DNS-адрес или приватный IP-адрес.
Мы рекомендуем подключаться по DNS-адресу. Для DNS-адресов в кластере используется механизм master discovery — адрес привязан к роли ноды, а не к самой ноде. При недоступности мастера одна из реплик становится новым мастером и адрес переходит на новую ноду вместе с ролью.
При подключени и по приватному IP-адресу механизм master discovery не используется. Если одна из реплик станет новым мастером, IP-адрес мастера изменится и подключение по старому IP-адресу перестанет работать.
Чтобы подключиться из другой приватной подсети, сначала подключите обе приватные подсети к облачному роутеру.
Вы можете посмотреть адрес для подключения в панели управления.
Подключение из интернета к кластеру в приватной подсети
Если вы подключаетесь к кластеру в приватной подсети из интернета, можно использовать только публичный IP-адрес (Floating IP). Приватная подсеть должна соответствовать требованиям. Если подсеть не соответствует требованиям, подготовьте ее для подключения публичного IP-адреса (Floating IP).
Для публичных IP-адресов (Floating IPs) используется механизм master discovery — адрес привязан к роли ноды, а не к самой ноде. При недоступности мастера одна из реплик становится новым мастером и адрес переходит на новую ноду вместе с ролью.
Вы можете посмотреть адрес для подключения в панели управления.
Посмотреть адрес для подключения
- В панели управления в верхнем меню нажмите Продукты и выберите Облачные базы данных.
- Откройте вкладку Активные.
- Откройте страницу кластера баз данных → вкладка Подключение.
- В блоке Адреса для подключения посмотрите адрес.
Подключиться с SSL
Подключение с использованием TLS(SSL)-шифрования обеспечивает безопасное соединение между вашим сервером и кластером баз данных.
Bash
PowerShell
Python
PHP
Go
Node.js
-
Скачайте корневой сертификат и поместите его в папку
~/.redis/:mkdir -p ~/.redis/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.redis/root.crt
chmod 600 ~/.redis/root.crt -
Подключитесь к кластеру:
redis-cli -h <host> \
-a <password> \
-p <port> \
--tls \
--cacert ~/.redis/root.crtУкажите:
<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<password>— пароль;<port>— порт для подключения.
-
В пане ли управления нажмите Скачать сертификат для скачивания корневого сертификата и поместите его в папку
%APPDATA%\redis\. -
Подключитесь к кластеру:
redis-cli -h <host> `
-a <password> `
-p <port> `
--tls `
--cacert %APPDATA%\redis\CA.pemУкажите:
<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<password>— пароль;<port>— порт для подключения.
-
Скачайте корневой сертификат и поместите его в папку
~/.redis/:mkdir -p ~/.redis/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.redis/root.crt
chmod 600 ~/.redis/root.crt -
Установите библиотеку redis:
pip install redis -
Используйте пример подключения:
import redis
r = redis.Redis(
host="<host>",
password="<password>",
port=<port>,
db=0,
ssl=True,
ssl_ca_certs="<path>",
)
print(r.set("KEY", "VALUE"))
print(r.get("KEY"))Укажите:
<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<password>— пароль пользователя;<port>— порт для подключения;<path>— полный путь до корневого сертификата.
-
Скачайте корневой сертификат и поместите его в папку
~/.redis/:mkdir -p ~/.redis/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.redis/root.crt
chmod 600 ~/.redis/root.crt -
Установите через composer библиотеку predis:
composer require predis/predis -
Используйте пример подключения:
<?php
require __DIR__ . '/vendor/autoload.php';
Predis\Autoloader::register();
$host = ['<host>:<port>'];
$options = [
'parameters' => [
'scheme' => 'tls',
'ssl' => ['cafile' => '<path>', 'verify_peer' => true],
'password' => "<password>"
],
'cluster' => 'predis'
];
$conn = new Predis\Client($host, $options);
$conn->set('KEY', 'VALUE');
var_dump($conn->get('KEY'));
$conn->disconnect();
?>Укажите:
<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<port>— порт для подключения;<path>— полный путь до корневого сертификата;<password>— пароль пользователя.
-
Скачайте корневой сертификат и поместите его в папку
~/.redis/:mkdir -p ~/.redis/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.redis/root.crt
chmod 600 ~/.redis/root.crt -
Используйте пример подключения:
package main
import (
"context"
"crypto/tls"
"crypto/x509"
"fmt"
"io/ioutil"
"github.com/go-redis/redis/v8"
)
var ctx = context.Background()
var certPath = "<path>"
func main() {
caCert, err := ioutil.ReadFile(certPath)
if err != nil {
panic(err)
}
caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(caCert)
rdb := redis.NewClient(&redis.Options{
Addr: "<host>:<port>",
Password: "<password>",
DB: 0,
TLSConfig: &tls.Config{
RootCAs: caCertPool,
InsecureSkipVerify: true,
},
})
err = rdb.Set(ctx, "key", "value", 0).Err()
if err != nil {
panic(err)
}
val, err := rdb.Get(ctx, "key").Result()
if err != nil {
panic(err)
}
fmt.Println("key", val)
}Укажите:
<path>— полный путь до корневого сертификата;<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<port>— порт для подключения;<password>— пароль пользователя.
-
Скачайте корневой сертификат и поместите его в папку
~/.redis/:mkdir -p ~/.redis/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.redis/root.crt
chmod 600 ~/.redis/root.crt -
Установите клиент ioredis:
npm install ioredis -
Используйте пример подключения:
const fs = require('fs');
const Redis = require('ioredis');
const config = {
host: '<host>',
port: <port>,
password: '<password>',
tls: {
rejectUnauthorized: true,
ca: fs.readFileSync('<path>').toString(),
}
};
const connection = new Redis(config);
connection.set('key', 'value', (error) => {
if (error) throw error;
});
connection.get('key', (error, res) => {
if (error) throw error;
console.log(res);
connection.disconnect();
});Укажите:
<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<port>— порт для подключения;<password>— пароль пользователя;<path>— полный путь до корневого сертификата.
Подключиться без SSL
Подключение без SSL доступно только для кластеров в приватной подсети.
Bash
PowerShell
Python
PHP
Go
Node.js
-
Откройте CLI.
-
Подключитесь к кластеру:
redis-cli -h <host> \
-a <password> \
-p <port>Укажите:
<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<password>— пароль;<port>— порт для подключения.
-
Откройте CLI.
-
Подключитесь к кластеру:
redis-cli -h <host> `
-a <password> `
-p <port>Укажите:
<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<password>— пароль;<port>— порт для подключения.
-
Установите библиотеку redis:
pip install redis -
Используйте пример подключения:
import redis
r = redis.Redis(
host="<host>",
password=r"<password>",
port=<port>,
db=0,
)
print(r.set("KEY", "VALUE"))
print(r.get("KEY"))Укажите:
<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<password>— пароль пользователя;<port>— порт для подключения.
-
Установите через composer библиотеку predis:
composer require predis/predis -
Используйте пример подключения:
<?php
require __DIR__ . '/vendor/autoload.php';
Predis\Autoloader::register();
$host = ['<host>:<port>'];
$options = [
'parameters' => [
'password' => "<password>"
],
'cluster' => 'predis'
];
$conn = new Predis\Client($host, $options);
$conn->set('KEY', 'VALUE');
var_dump($conn->get('KEY'));
$conn->disconnect();
?>Укажите:
<host>— DNS -адрес или публичный IP-адрес (Floating IP) ноды;<port>— порт для подключения;<password>— пароль пользователя.
Используйте пример подключения:
package main
import (
"context"
"fmt"
"github.com/go-redis/redis/v8"
)
func main() {
var ctx = context.Background()
rdb := redis.NewClient(&redis.Options{
Addr: "<host>:<port>",
Password: "<password>",
DB: 0,
})
err := rdb.Set(ctx, "key", "value", 0).Err()
if err != nil {
panic(err)
}
val, err := rdb.Get(ctx, "key").Result()
if err != nil {
panic(err)
}
fmt.Println("key", val)
}
Укажите:
<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<port>— порт для подключения;<password>— пароль пользователя.
-
Установите клиент ioredis:
npm install ioredis -
Используйте пример подключения:
const Redis = require('ioredis');
const config = {
host: '<host>',
port: <port>,
password: '<password>',
};
const connection = new Redis(config);
connection.set('key', 'value', (error) => {
if (error) throw error;
});
connection.get('key', (error, res) => {
if (error) throw error;
console.log(res);
connection.disconnect();
});Укажите:
<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<port>— порт для подключения;<password>— пароль пользователя.
Подключиться через Docker
-
Скачайте корневой сертификат и поместите его в папку
~/.redis/:mkdir -p ~/.redis/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.redis/root.crt
chmod 600 ~/.redis/root.crt -
Подключитесь к кластеру:
docker run --rm -it \
-v $(pwd)/.redis/root.crt:/root.crt \
redis \
redis-cli \
-h <host> \
-a <password> \
-p <port> --tls \
--cacert /root.crtУкажите:
<host>— DNS-адрес или публичный IP-адрес (Floating IP) ноды;<password>— пароль пользователя;<port>— порт для подключения.