Введите имя домена:
.ua .com.ua .in.ua .org.ua
.ru .com .net .org
Показать все домены

Установка кластера Redis

Ответы на вопросы от компании «Украинский хостинг».

Установка и настройка кластера Redis на Ubuntu

Redis представляет собой высокопроизводительное распределенное хранилище данных типа ключ-значение с открытым исходным кодом. Redis позволяет сохранять данные на диск, у него есть функции репликации, хранения массивов данных, транзакции и пакетной обработки данных.

Для выполнения инструкции необходимы два сервера с ОС CentOS 7.

Так же перед выполнением инструкции рекомендуется на обеих серверах создать не root пользователя с доступом к sudo.

В инструкции используется текстовый редактор nano, для установки которого требуется выполнить команду:

yum install nano
  1. Процесс установки состоит из следующих шагов:

    Обновляем систему до последнего стабильного состояния при помощи команды:

    sudo yum install epel-release -y

    Нажать клавишу Enter. Если запрашивает пароль, ввести его

    и команды:
    sudo yum update -y

    Нажать Enter. Обновление может занять несколько минут. Если всё сделано правильно, результат будет как на изображении.

  2. Устанавливаем Redis:

    sudo yum install redis -y

    Нажимаем Enter. Если запрашивает пароль, ввести его.

  3. Запускаем сервис Redis:

    sudo systemctl start redis.service

    Нажимаем Enter.

    Проверяем состояние хранилища:

    sudo systemctl status redis.service

    Нажимаем Enter.

  4. Проверяем установку Redis:

    redis-cli ping

    Нажимаем Enter. Правильный результат на изображении.

  5. Также проверить установку можно при помощи команды:

    redis-benchmark -q -n 1000 -c 10 -P 5

    Нажимаем Enter.

  6. После этого переходим на сервер 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.

  7. После этого перезагружаем правила для фаервола iptables

    sudo service iptables reload

    Нажимаем Enter.

  8. Открываем в текстовом редакторе файл /etc/redis.conf:

    sudo nano /etc/redis.conf

    Нажимаем Enter.

    Устанавливаем новое значение таймера keepalive для TCP, изменив строку:

    tcp-keepalive 300

    на строку:

    tcp-keepalive 60
  9. Открываем доступ к серверу в сети, изменив строку:

    bind 127.0.0.1

    на строку (ip адрес 93.190.42.52 необходимо заменить на ip адрес собственного сервера master):

    bind 127.0.0.1 93.190.42.52
  10. Для увеличения безопасности требуется раскомментировать строку (в начале строки убрать символ #):

    requirepass foobared

    и указать в ней сложный пароль (в примере установлен пароль A9f!7K5w%5Z0j5&O7t1).

    requirepass A9f!7K5w%5Z0j5&O7t1
  11. В случае, если ключи не буду удаляться из кластера, необходимо раскомментировать строку:

    maxmemory-policy noeviction
  12. После этого необходимо настроить резервное копирование данных.

    Для этого строку:

    appendonly no

    необходимо изменить на:

    appendonly yes

    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.

  13. Перезапускаем сервис 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
  14. Затем раскомментируем строку

    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.

  15. Перезапускаем сервис:

    sudo systemctl restart redis.service

    Нажимаем Enter. Если запрашивает пароль, ввести его.

    Подключаемся к серверу Redis:

    redis-cli -h 127.0.0.1 -p 6379

    Нажимаем Enter

  16. Авторизируемся при помощи пароля сервера slave.

    AUTH 1t7O&5j0Z5%w5K7!f9A

    Нажать клавишу Enter

  17. Теперь серверы master и slave кластера Redis настроены.

    Проверяем взаимодействие серверов Redis.

    На сервере master подключаемся к Redis:

    redis-cli -h 127.0.0.1 -p 6379

    Нажимаем Enter

  18. Авторизируемся при помощи пароля сервера master.

    AUTH A9f!7K5w%5Z0j5&O7t1

    Нажимаем Enter

  19. Затем выполняем команду INFO:

    INFO

    Нажать клавишу Enter

    Данная команда покажет все данные о master-сервере Redis.

    Раздел #Replication должен иметь примерно следующий вид:

    Видно, что значение строки connected_slaves равно 1, что значит, что ведомый сервер взаимодействует с сервером master.

  20. Теперь посмотрим раздел #Replication на машине slave. Подключаемся к серверу slave и выполняем команду INFO нажать клавишу Enter.

    Видим, что сервер slave исполняет роль ведомого и не имеет подчиненных к нему серверов.

См.также: