﻿# Redis

> [HTML Version](redis.html)

В статье описана установка Redis 6.2.12 для ОС Ubuntu Linux 20.04 и 22.04. Перед установкой проверьте допустимые версии Redis в статье [«Системные требования ELMA365 On-Premises»](elma365-enterprise-on-premises.md#valkey). Вы также можете ознакомиться с руководством в [официальной документации Redis](https://redis.io/docs/getting-started/installation/install-redis-on-linux/).

````
начало внимание

````
В связи с изменением лицензионной политики Redis рекомендуем устанавливать Valkey в качестве альтернативного решения. Подробнее об установке читайте в статье [«Valkey»](valkey.md).

````
конец внимание

````
Рекомендуется устанавливать Redis в той же среде Kubernetes, что и приложение ELMA365. Подробнее о вариантах организации инфраструктуры читайте в статьях [«ELMA365 On-Premises Standard»](elma365-on-premises-standard.md) и [«ELMA365 On-Premises Enterprise»](elma365-enterprise.md).

Подготовка СУБД к работе включает этапы:

1. [Установка Redis](#1redis).

2. [Настройка Redis](#2redis).

3. [Подключение к Redis](#3redis).

## Шаг 1. Установка Redis

1. Установите необходимые пакеты:

````
sudo apt install lsb-release curl gpg

2. ````
Импортируйте необходимые ключи и добавьте репозиторий Redis:

````
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg  
echo "deb \[signed-by=/usr/share/keyrings/redis-archive-keyring.gpg\] https://packages.redis.io/deb \$(lsb\_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

3. ````
Обновите кеш пакетов:

````
sudo apt-get update

4. ````
Установите Redis:

````
sudo apt-get -y install redis=6:6.2.12-1rl1~\$(lsb\_release -cs)1 redis-server=6:6.2.12-1rl1~\$(lsb\_release -cs)1 redis-tools=6:6.2.12-1rl1~\$(lsb\_release -cs)1

## ````
Шаг 2. Настройка Redis

````
Начало примечание

````
**Примечание**

Для пароля разрешается применять следующие символы: 

- заглавные латинские буквы: от A до Z;

- строчные латинские буквы: от a до z; 

- цифры от 0 до 9; 

- символы: -\_.

Зарезервированные (недопустимые) символы:

\! \* ' ( ) ; : @ \& = + \$ , / ? % # \[ \]

````
Конец примечание

1. ````
Разрешите подключение к серверу Redis. Для этого отредактируйте конфигурационный файл \[OBJECT\] и добавьте IP-адрес машины (например, 192.168.10.10):

````
sudo nano /etc/redis/redis.conf  
bind 192.168.10.10

````
Настройка включения TLS в Redis

Для включения поддержки TLS в Redis необходимо в файле конфигурации \[OBJECT\]:

1. Отключить незащищённые подключения, выставив \[OBJECT\] в параметре \[OBJECT\]. 

2. Задать порт для TLS подключений. Для этого расскоментируйте параметр \[OBJECT\].

3. В параметре \[OBJECT\] указать путь до файла сертификата сервера.

4. В параметре \[OBJECT\] указать путь до файла закрытого ключа.

5. В параметре \[OBJECT\] указать путь до файла корневого CA.

6. Отключить аутентификацию клиента с использованием действующего сертификата, выставив \[OBJECT\] в параметре \[OBJECT\].

````
port 0  
tls-port 6379  
tls-cert-file /path/redis.crt  
tls-key-file /path/redis.key  
tls-ca-cert-file /path/to/ca.crt  
tls-auth-clients no

````




  
Подробнее о настройке TLS в Redis читайте в [официальной документации Redis](https://redis.io/docs/management/security/encryption/).

2. Увеличьте максимальное количество клиентов, изменив значение параметра \[OBJECT\] на \[OBJECT\]. Раскомментируйте строку, убрав знак #:

````
maxclients 20000

3. ````
Задайте политику вытеснения ключей, изменив значение параметра \[OBJECT\] на \[OBJECT\]. Раскомментируйте строку, убрав знак #:

````
maxmemory-policy allkeys-lfu

4. ````
 Отключите создание **snapshots**, изменив значение параметра \[OBJECT\] на \[OBJECT\]. Раскомментируйте строку, убрав знак #:

````
save ""

5. ````
Отключите **AOF** (сохранение базы данных Redis в файл). Для этого замените значение параметра \[OBJECT\] на \[OBJECT\]. Раскомментируйте строку, убрав знак #:

````
appendonly no

6. ````
Перезапустите Redis:

````
sudo systemctl restart redis-server

## ````
Шаг 3. Подключение к Redis

Строка для подключения к Redis:

````
redis://<redis-server-address>:6379/0

````
Строка для подключения к Redis c TLS:

````
rediss://<redis-server-address>:6379/0

````
Если у вас есть готовый кластер Redis, вы можете использовать его в качестве кеша для ELMA365. О том, как развернуть Redis Cluster, смотрите в [официальной документации](https://redis.io/docs/management/scaling/#redis-cluster-101)).