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