6.16 Установка и настройка Redis

Redis (Remote Dictionary Server) является мощной системой управления базами данных типа “ключ-значение”, получившей широкое распространение среди разработчиков благодаря своей высокой производительности и универсальности. Эта технология выступает не просто хранилищем данных, а служит эффективным инструментом кэширования, очередей сообщений и реализации сложных структур данных в реальном времени.
Уникальность Redis заключается в её способности хранить различные типы данных — от простых строк до сложных структур, таких как списки, множества, хэш-таблицы и другие. Благодаря поддержке операций in-memory и возможности сохранения данных на диск, Redis обеспечивает непревзойденную скорость работы с данными при сохранении надежности.
Важно: перед установкой Redis убедитесь, что Ваша система соответствует минимальным системным требованиям и имеет актуальные системные обновления.
Важно иметь уровень доступа root. Настройку можно реализовать на наших услугах виртуальных и выделенных серверов.
Подготовка системы
Обновление системы
Для Debian/Ubuntu:
- sudo apt update
- sudo apt upgrade -y
Для CentOS/AlmaLinux/RockyLinux:
- sudo dnf update -y
Установка Redis
Debian/Ubuntu:
- # Загружаем и добавляем ключ для репозитория Redis
- curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
-
- # Добавляем репозиторий Redis в список источников APT
- 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
-
- # Устанавливаем Redis
- sudo apt install redis -y
CentOS/AlmaLinux/RockyLinux:
- sudo dnf install -y epel-release
- sudo dnf install -y redis
Базовая конфигурация Redis
- Редактирование конфигурационного файла:
- sudo nano /etc/redis/redis.conf
- Ключевые настройки безопасности:
# Ограничение прослушивания только для локального доступа
bind 127.0.0.1 ::1
# Установка надежного пароля
requirepass StrongRedisPassword2024!
# Ограничение использования памяти
maxmemory 2gb
maxmemory-policy allkeys-lru
# Отключение команд, которые могут использоваться для потенциального злоупотребления
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command SHUTDOWN ""
rename-command DEBUG ""
- Сохранение и перезапуск службы:
- sudo systemctl restart redis-server
- Включение автозапуска службы:
- sudo systemctl enable redis
- Проверка активности автозапуска:
- systemctl is-enabled redis
Если команда вернет enabled, это означает, что автозапуск включен.
Может быть возвращен результат alias, это означает, что сервис redis работает через символическую ссылку (alias) на другой сервис. Обычно это происходит, если в Вашей системе redis настроен как “псевдоним” к другому сервису, например, redis-server.
Настройка межсетевых экранов
Информируем: для удобства ввода большого количества последовательных команд, Вам будет предоставлен пример с использованием Heredoc. Рассмотрим что это такое.
Heredoc (сокращенно от “here document”) является удобным механизмом в bash-скриптинге, который позволяет передавать многострочный текст или последовательность команд непосредственно в команду или интерпретатор. Синтаксис heredoc использует операторы << с произвольным разделителем (чаще всего EOF), что создает уникальный способ группировки и выполнения команд.
Механизм heredoc работает следующим образом:
- Интерпретатор bash создает временный текстовый поток.
- Все команды между маркерами
<<EOFиEOFвыполняются последовательно. - Позволяет группировать сложные последовательности команд без создания временных файлов.
- Обеспечивает контролируемую передачу данных между командами.
Основное преимущество — возможность выполнения блока команд с повышенными правами (через sudo) без необходимости создания отдельного скрипта.
Настройка iptables:
- sudo bash << EOF
- # Полная конфигурация iptables для Redis
- iptables -F
- iptables -X
-
- # Базовые политики
- iptables -P INPUT DROP
- iptables -P FORWARD DROP
- iptables -P OUTPUT ACCEPT
-
- # Разрешение локальных соединений
- iptables -A INPUT -i lo -j ACCEPT
-
- # Разрешение установленных соединений
- iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-
- # Разрешение SSH
- iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-
- # Разрешение Redis из локальной сети
- iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 6379 -j ACCEPT
-
- # Закрытие порта Redis для внешних подключений
- iptables -A INPUT -p tcp --dport 6379 -j LOG --log-prefix "Redis Connection Attempt: "
- iptables -A INPUT -p tcp --dport 6379 -j DROP
- EOF
Сохранение правил:
- sudo apt install -y iptables-persistent
- netfilter-persistent save
При сохранении правил у Вас запросят подтверждение. Необходимо нажать Yes.

Настройка firewalld:
- sudo bash << EOF
- # Установка и настройка firewalld
- dnf install -y firewalld
-
- # Запуск и активация службы
- systemctl enable firewalld
- systemctl start firewalld
-
- # Добавление правил для Redis
- firewall-cmd --permanent --add-port=6379/tcp
- firewall-cmd --permanent --add-rich-rule='
- rule family="ipv4"
- source address="192.168.0.0/24"
- port protocol="tcp" port="6379"
- accept'
-
- # Применение изменений
- firewall-cmd --reload
- EOF
Настройка UFW:
- sudo bash << EOF
- # Установка и базовая настройка UFW
- apt install -y ufw
-
- # Базовые политики
- ufw default deny incoming
- ufw default allow outgoing
-
- # Разрешение SSH
- ufw allow ssh
-
- # Разрешение Redis из локальной сети
- ufw allow from 192.168.0.0/24 to any port 6379
-
- # Активация UFW
- ufw enable
- EOF
Проверка статуса службы Redis
1. Проверка статуса системной службы Redis.
Чтобы узнать, работает ли служба Redis, выполните команду:
- sudo systemctl status redis
Вы увидите информацию о состоянии службы, включая активность и возможные ошибки.

2. Проверка работы Redis через redis-cli.
Для быстрой проверки, отвечает ли Redis:
- redis-cli ping
В ответ должно быть PONG, что указывает на корректную работу.

3. Проверка, прослушивает ли служба порт 6379 (порт по умолчанию).
Используйте netstat или ss, чтобы проверить, прослушивает ли Redis нужный порт:
- sudo netstat -lnp | grep 6379

Или с помощью ss:
- sudo ss -lnp | grep 6379
Если порт прослушивается, это подтверждает, что Redis работает.

4. Дополнительная проверка конфигурации Redis.
Чтобы узнать активные параметры Redis, подключитесь к нему с помощью клиента:
- redis-cli
И введите команду:
- CONFIG GET *
Это позволит увидеть все параметры конфигурации, включая порт, режим работы и другие настройки.



