бесплатно с городских телефонов Украины
Киев | 044 392-73-56 |
Харьков | 057 728-49-18 |
Днепр | 056 790-86-00 |
Одесса | 048 734-56-54 |
Львов | 032 229-58-50 |
Николаев | 051 270-12-63 |
Полтава | 053 262-53-74 |
Запорожье | 061 228-69-91 |
Redis представляет собой высокопроизводительное распределенное хранилище данных типа ключ-значение с открытым исходным кодом. Redis позволяет сохранять данные на диск, у него есть функции репликации, хранения массивов данных, транзакции и пакетной обработки данных.
Для выполнения инструкции необходимы два сервера с ОС CentOS 7.
Так же перед выполнением инструкции рекомендуется на обеих серверах создать не root пользователя с доступом к sudo.
В инструкции используется текстовый редактор nano, для установки которого требуется выполнить команду:
yum install nano
Процесс установки состоит из следующих шагов:
Обновляем систему до последнего стабильного состояния при помощи команды:
sudo yum install epel-release -y
Нажать клавишу Enter. Если запрашивает пароль, ввести его
и команды:sudo yum update -y
Нажать Enter. Обновление может занять несколько минут. Если всё сделано правильно, результат будет как на изображении.
Устанавливаем Redis:
sudo yum install redis -y
Нажимаем Enter. Если запрашивает пароль, ввести его.
Запускаем сервис Redis:
sudo systemctl start redis.service
Нажимаем Enter.
Проверяем состояние хранилища:
sudo systemctl status redis.service
Нажимаем Enter.
Проверяем установку Redis:
redis-cli ping
Нажимаем Enter. Правильный результат на изображении.
Также проверить установку можно при помощи команды:
redis-benchmark -q -n 1000 -c 10 -P 5
Нажимаем Enter.
После этого переходим на сервер slave и повторяем все вышеперечисленные действия.
Далее необходимо отредактировать конфигурационные файлы Redis на обеих серверах. Между настройками ведущего и ведомого сервера есть некоторые отличия.
Настраиваем сервер master.
Открываем файл /etc/sysconfig/iptables
sudo nano /etc/sysconfig/iptables
Нажимаем Enter. Если запрашивает пароль, ввести его.
И после строки:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
вставляем строку (ip адрес 93.190.42.60 необходимо заменить на ip адрес собственного сервера slave):
-A INPUT -p tcp -m state --state NEW -m tcp -s 93.190.42.60 --dport 6379 -j ACCEPT
Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
После этого перезагружаем правила для фаервола iptables
sudo service iptables reload
Нажимаем Enter.
Открываем в текстовом редакторе файл /etc/redis.conf:
sudo nano /etc/redis.conf
Нажимаем Enter.
Устанавливаем новое значение таймера keepalive для TCP, изменив строку:
tcp-keepalive 300
на строку:
tcp-keepalive 60
Открываем доступ к серверу в сети, изменив строку:
bind 127.0.0.1
на строку (ip адрес 93.190.42.52 необходимо заменить на ip адрес собственного сервера master):
bind 127.0.0.1 93.190.42.52
Для увеличения безопасности требуется раскомментировать строку (в начале строки убрать символ #):
requirepass foobared
и указать в ней сложный пароль (в примере установлен пароль A9f!7K5w%5Z0j5&O7t1).
requirepass A9f!7K5w%5Z0j5&O7t1
В случае, если ключи не буду удаляться из кластера, необходимо раскомментировать строку:
maxmemory-policy noeviction
После этого необходимо настроить резервное копирование данных.
Для этого строку:
appendonly no
необходимо изменить на:
appendonly yes
Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
Перезапускаем сервис Redis:
sudo systemctl restart redis.service
Нажать клавишу Enter. Если запрашивает пароль, ввести его.
Теперь необходимо настроить сервер slave.
Открываем /etc/redis.conf в текстовом редакторе:
sudo nano /etc/redis.conf
Нажимаем Enter. Если запрашивает пароль, ввести его.
Некоторые параметры будут совпадать с сервером master.
Серверу slave также необходим пароль.
Раскомментируем строку:
requirepass foobared
и указываем в ней сложный пароль (в примере установлен пароль 1t7O&5j0Z5%w5K7!f9A):
requirepass 1t7O&5j0Z5%w5K7!f9A
Затем раскомментируем строку
slaveof
и указываем в ней ip адрес сервера master и порт (по умолчанию – порт 6379):
slaveof 93.190.42.52 6379
Раскомментируем строку:
masterauth
и указываем в ней пароль сервера master (в примере установлен пароль A9f!7K5w%5Z0j5&O7t1):
masterauth A9f!7K5w%5Z0j5&O7t1
Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
Перезапускаем сервис:
sudo systemctl restart redis.service
Нажимаем Enter. Если запрашивает пароль, ввести его.
Подключаемся к серверу Redis:
redis-cli -h 127.0.0.1 -p 6379
Нажимаем Enter
Авторизируемся при помощи пароля сервера slave.
AUTH 1t7O&5j0Z5%w5K7!f9A
Нажать клавишу Enter
Теперь серверы master и slave кластера Redis настроены.
Проверяем взаимодействие серверов Redis.
На сервере master подключаемся к Redis:
redis-cli -h 127.0.0.1 -p 6379
Нажимаем Enter
Авторизируемся при помощи пароля сервера master.
AUTH A9f!7K5w%5Z0j5&O7t1
Нажимаем Enter
Затем выполняем команду INFO:
INFO
Нажать клавишу Enter
Данная команда покажет все данные о master-сервере Redis.
Раздел #Replication должен иметь примерно следующий вид:
Видно, что значение строки connected_slaves равно 1, что значит, что ведомый сервер взаимодействует с сервером master.
Теперь посмотрим раздел #Replication на машине slave. Подключаемся к серверу slave и выполняем команду INFO нажать клавишу Enter.
Видим, что сервер slave исполняет роль ведомого и не имеет подчиненных к нему серверов.
См.также:
Установка кластера Redis