﻿# Valkey

> [HTML Version](valkey.html)

Valkey — высокопроизводительная NoSQL СУБД, разработанная на основе Redis для современных облачных и распределённых систем.

В статье приведена установка Valkey 8.1.1 для ОС Ubuntu Linux 22.04 и 24.04. Вы можете найти установочные файлы Valkey для вашей операционной системы в следующих ресурсах:

- [официальный репозиторий Valkey](https://github.com/valkey-io/valkey/releases);

- [сайт сервиса Repology](https://repology.org/project/valkey/versions).

Рекомендуется устанавливать Valkey в той же среде Kubernetes, что и приложение ELMA365. Подробнее о вариантах организации инфраструктуры читайте в статьях [«ELMA365 On-Premises Standard»](elma365-on-premises-standard.md) и [«ELMA365 On-Premises Enterprise»](elma365-enterprise.md).

Ознакомиться с дополнительной информацией о Valkey можно также в источниках:

- [«Системные требования ELMA365 On-Premises»](elma365-enterprise-on-premises.md#valkey) — поддерживаемые версии Valkey для корректной работы системы;

- [«Переход с Redis на Valkey»](redis-to-valkey.md) — как заменить Redis на Valkey;

- [официальная документация Valkey](https://valkey.io/topics/quickstart/) — подробнее о работе с СУБД.

Подготовка СУБД к работе включает этапы:

1. [Установка Valkey](#step-one).

2. [Настройка Valkey](#configure-valkey).

3. [Подключение к Valkey](#connect-valkey).

## Шаг 1. Установка Valkey

1. Установите пакеты:

````
sudo apt install -y apt-transport-https ca-certificates curl

2. ````
Импортируйте ключи:

````
sudo curl -fsSL https://repo.elma365.tech/deb/elma365-keyring.gpg | gpg --dearmor > /etc/apt/trusted.gpg.d/elma365-keyring.gpg

3. ````
Добавьте репозиторий ELMA365:

````
echo "deb \[arch=amd64\] https://repo.elma365.tech/deb \$(lsb\_release -cs) stable" | sudo tee /etc/apt/sources.list.d/elma365.list  
sudo apt update

4. ````
Установите Valkey:

````
sudo apt install elma365-valkey-server

## ````
Шаг 2. Настройка Valkey

````
начало примечание

````
**Примечание**

Для пароля разрешается применять следующие символы:

- заглавные латинские буквы: от A до Z;

- строчные латинские буквы: от a до z;

- цифры от 0 до 9;

- символы:  -\_.

Зарезервированные (недопустимые) символы:

\! \* ' ( ) ; : @ \& = + \$ , / ? % # \[ \]

````
конец примечание

````
Задайте настройки для установленной СУБД:

1. Разрешите подключение к серверу Valkey. Для этого отредактируйте конфигурационный файл \[OBJECT\] и добавьте IP-адрес машины, например 192.168.10.10:

````
sudo nano /etc/valkey/valkey.conf  
bind 127.0.0.1 ::1 192.168.10.10

````
**Настройка включения TLS в Valkey**

  
Чтобы включить поддержку TLS в Valkey, в файле конфигурации **valkey.conf**:

1. Отключите незащищенные подключения, выставив в параметре \[OBJECT\]** **значение \[OBJECT\]. 

2. Задайте порт для TLS‑подключений. Для этого раскомментируйте параметр \[OBJECT\].

3. В параметре \[OBJECT\] укажите путь к файлу сертификата сервера.

4. В параметре \[OBJECT\] укажите путь к файлу закрытого ключа.

5. В параметре \[OBJECT\] укажите путь к файлу корневого CA.

````
port 0  
tls-port 6379  
tls-cert-file /path/Valkey.crt  
tls-key-file /path/Valkey.key  
tls-ca-cert-file /path/to/ca.crt

````
  
Подробнее о настройке TLS в Valkey читайте в [официальной документации Valkey](https://valkey.io/topics/encryption/).

2. Увеличьте максимальное количество клиентов, изменив значение параметра \[OBJECT\] на \[OBJECT\]. Раскомментируйте строку, убрав знак \[OBJECT\]:

````
maxclients 20000

3. ````
Задайте политику вытеснения ключей, изменив значение параметра \[OBJECT\] на \[OBJECT\]. Раскомментируйте строку, убрав знак \[OBJECT\]:

````
maxmemory-policy allkeys-lfu

4. ````
Отключите создание **snapshots**, изменив значение параметра \[OBJECT\] на пустую строку. Раскомментируйте строку, убрав знак \[OBJECT\]:

````
save ""

5. ````
Отключите **AOF** (**Append Only File)**,** **чтобы база данных Valkey не сохранялась в файл. Для этого замените значение параметра \[OBJECT\] на \[OBJECT\]. Раскомментируйте строку, убрав знак \[OBJECT\]:

````
appendonly no

6. ````
Опционально. Добавьте пароль для доступа к Valkey, используя разрешённые символы:

````
requirepass SecretPassword

7. ````
Отключите защищённый режим, если используется параметр \[OBJECT\] или отсутствует настройка \[OBJECT\]:

````
protected-mode no

8. ````
Перезапустите Valkey:

````
sudo systemctl restart valkey-server

## ````
Шаг 3. Подключение к Valkey

Строка для подключения к Valkey:

````
redis://<valkey-server-address>:6379/0

````
Строка для подключения к Valkey, если включён доступ по паролю:

````
redis://:SecretPass@<valkey-server-address>:6379/0

````
Строка для подключения к Valkey c TLS:

````
rediss://<valkey-server-address>:6379/0

````
Строка для подключения к Valkey c TLS, если включён доступ по паролю:

````
rediss://:SecretPass@<valkey-server-address>:6379/0
````