Redis – это высокопроизводительная БД, которая хранит данные в памяти, доступ к которым осуществляется по ключу доступа. Она может использоваться в качестве базы данных, кэша и брокера сообщений и поддерживает различные структуры данных, такие как строки, хэши, списки, наборы и т. Д. Redis обеспечивает высокую доступность через Redis Sentinel и автоматическое разбиение между несколькими узлами Redis с помощью Redis Cluster.
Это руководство описывает установку и настройку Redis в CentOS 8. Подробно про Redis можно прочесть в этой статье.
Установка Redis в CentOS 8
Redis версии 5.0.x включен в стандартные репозитории CentOS 8. Для его установки выполните следующие команды от имени пользователя root или пользователя с привилегиями sudo (про то как получить права sudo можно прочесть тут)
sudo dnf install redis-server
После завершения установки включите и запустите службу Redis:
sudo systemctl enable --now redis
Чтобы проверить, работает ли сервер Redis, введите:
sudo systemctl status redis
Получим следующий вывод:
? redis.service - Redis persistent key-value database Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/redis.service.d L-limit.conf Active: active (running) since Sat 2020-02-08 20:54:46 UTC; 7s ago
Вот и все! Redis установлен и работает на вашем сервере CentOS 8.
Настройка удаленного доступа Redis
По умолчанию Redis не разрешает удаленные подключения. Вы можете подключиться к серверу Redis только с 127.0.0.1 (localhost) - компьютера, на котором работает Redis.
Если вы используете установку с одним сервером, где клиент, подключающийся к базе данных, также работает на том же хосте, вам не нужен удаленный доступ.
Чтобы настроить Redis для приема удаленных подключений, откройте файл конфигурации Redis в текстовом редакторе:
sudo nano /etc/redis.conf
Найдите строку, начинающуюся с bind 127.0.0.1
, и добавьте внутренний IP-адрес вашего сервера после 127.0.0.1
.
bind 127.0.0.1 192.168.1.10
Убедитесь, что вы заменили 192.168.1.10 своим IP-адресом. Сохраните файл и закройте редактор. Если вы хотите, чтобы Redis прослушивал все интерфейсы, просто закомментируйте строку.
Перезапустите службу Redis, чтобы изменения вступили в силу:
sudo systemctl restart redis
Используйте следующую команду ss
, чтобы убедиться, что сервер Redis прослушивает ваш локальный интерфейс через порт 6379
:
ss -an | grep 6379
Вы должны увидеть что-то вроде этого:
tcp LISTEN 0 128 192.168.1.10:6379 0.0.0.0:* tcp LISTEN 0 128 127.0.0.1:6379 0.0.0.0:*
Затем вам нужно настроить фаервол для доступа трафика с TCP-порта 6379.
Скорее всего вы захотите разрешить доступ к серверу Redis только с определенного IP-адреса или диапазона IP-адресов. Например, чтобы разрешить подключения только с подсети
192.168.2.0/24
, выполните следующие команды:sudo firewall-cmd --new-zone=redis –permanent sudo firewall-cmd --zone=redis --add-port=6379/tcp –permanent sudo firewall-cmd --zone=redis --add-source=192.168.2.0/24 –permanent sudo firewall-cmd --reload
Приведенные выше команды создают новую зону с именем redis
, открывают порт 6379
и разрешают доступ из частной сети. На этом этапе сервер Redis будет принимать удаленные подключения через порт TCP 6379
.
Убедитесь, что ваш фаервол настроен на прием соединений только из доверенных диапазонов IP-адресов. Чтобы убедиться, что все настроено правильно, вы можете попробовать пропинговать сервер Redis с удаленного компьютера, используя утилиту redis-cli
, которая предоставляет интерфейс командной строки для сервера Redis:
redis-cli -hping
Команда должна вернуть ответ PONG:
PONG
Если это так, то значит, что мы все сделали правильно!