Подключиться к кластеру Redis
К кластеру облачных баз данных Redis можно подключиться по DNS-адресу или IP-адресу.
Если кластер подключен к приватной подсети и вы хотите работать с ним через DNS, подключите к подсети кластера облачный роутер с доступом во внешнюю сеть .
Мы рекомендуем подключаться к кластеру с помощью DNS-адресов --- они ведут на актуальные IP-адреса мастер-ноды и реплик. Если в случае недоступности мастер-ноды одна из реплик возьмет на себя его роль, IP-адрес мастер-ноды изменится, и подключение по IP-адресу перестанет работать.
Порты
Для подключения к Redis используйте порты:
6380 — порт для подключения с SSL-сертификатом;
6379 — порт для подключения без SSL-сертификата.
Способы подключения
через Docker ;
из программного кода. Можно использовать адрес балансировщика нагрузки, подключенного к нодам кластера, выбрать ноду в коде приложения или использовать драйвер, поддерживающий подключение к нескольким хостам.
Посмотреть адрес для подключения
В панели управления перейдите в раздел Облачная платформа ⟶ Базы данных .
Откройте страницу кластера ⟶ вкладка Настройки .
В блоке Адреса и статусы нод посмотрите DNS-адрес или IP-адрес.
Подключиться с SSL
Подключение по SSL обеспечивает шифрование данных между вашим сервером и кластером баз данных.
Linux
Python
PHP
Go
Node.js
Скачайте CA-сертификат и поместите его в папку ~/.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 6380 \
--tls \
--cacert ~/.redis/root.crt
Укажите:
<host>
— DNS- или IP-адрес ноды;
<password>
— пароль.
Скачайте CA-сертификат и поместите его в папку ~/.redis/
:
mkdir -p ~/.redis/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.redis/root.crt
chmod 600 ~/.redis/root.crt
Установите библиотеку redis:
Используйте пример подключения:
import redis
r = redis . Redis (
host = "<host>" ,
password = "<password>" ,
port = 6380 ,
db = 0 ,
ssl = True ,
ssl_ca_certs = "<full_path_to_ca_certificate>" ,
)
print ( r . set ( "KEY" , "VALUE" ))
print ( r . get ( "KEY" ))
Укажите:
<host>
— DNS- или IP-адрес ноды;
<password>
— пароль пользователя;
<full_path_to_ca_certificate>
— полный путь до CA-сертификата.
Скачайте CA-сертификат и поместите его в папку ~/.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>:6380' ];
$options = [
'parameters' => [
'scheme' => 'tls' ,
'ssl' => [ 'cafile' => '<full_path_to_ca_certificate>' , '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-адрес ноды;
<full_path_to_ca_certificate>
— полный путь до CA-сертификата;
<password>
— пароль пользователя.
Скачайте CA-сертификат и поместите его в папку ~/.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 = "<full_path_to_ca_certificate>"
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>:6380" ,
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 )
}
Укажите:
<full_path_to_ca_certificate>
— полный путь до CA-сертификата;
<host>
— DNS- или IP-адрес ноды;
<password>
— пароль пользователя.
Скачайте CA-сертификат и поместите его в папку ~/.redis/
:
mkdir -p ~/.redis/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.redis/root.crt
chmod 600 ~/.redis/root.crt
Установите клиент ioredis:
Используйте пример подключения:
const fs = require ( 'fs' );
const Redis = require ( 'ioredis' );
const config = {
host : '<host>' ,
port : 6380 ,
password : '<password>' ,
tls : {
rejectUnauthorized : true ,
ca : fs . readFileSync ( '<full_path_to_ca_certificate>' ). toString (),
}
};
const connection = new Redis ( config );
connection . call ( 'INFO' , ( error , res ) => {
if ( error ) throw error ;
console . log ( res );
connection . disconnect ();
});
Укажите:
<host>
— DNS- или IP-адрес ноды;
<password>
— пароль пользователя;
<full_path_to_ca_certificate>
— полный путь до CA-сертификата.
Подключиться без SSL
Подключитесь к кластеру:
redis-cli -h <host> \
-a <password> \
-p 6379
Укажите:
<host>
— DNS- или IP-адрес ноды;
<password>
— пароль.
Подключиться из Docker
Скачайте CA-сертификат и поместите его в папку ~/.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 6380 --tls \
--cacert /root.crt
Укажите:
<host>
— DNS- или IP-адрес ноды;
<password>
— пароль пользователя.