безкоштовно з міських телефонів України
| Київ | 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
