-
Redis w CentOS 7
Redis to doskonałe narzędzie służące do magazynowania danych. Możemy je wykorzystać po prostu jako bazę danych lub np. cache aplikacji, czy broker wiadomości np. w połączeniu z Logstashem i Elasticsearchem. Przystępujemy do instalacji. Musimy mieć skonfigurowane repozytorium EPEL. W omawianym przykładzie zakładamy sytuację z dwoma nodami. Na każdym z nich wydajemy poniższą komendę:
yum install redis
Następnie przystępujemy do konfiguracji, edytując odpowiedni plik
vim /etc/redis.conf
Ustawiamy:
bind nasze_ip_prywatne
-> ustawiamy aby redis nasłuchiwał tylko na naszym prywatnym adresie IP. Nie zalecane jest wystawianie takich usług na świat.
port 6379
-> wartość domyślna określająca na którym porcie nasłuchuje usługa
dir /var/lib/redis
-> określamy położenie w którym przechowywane będę pliki redisa, m.in zrzuty pamięci
requirepass tajnehaslo
-> zabezpieczamy dostęp do naszego redisa. Aby nasza usługa działała prawidłowo, niezbędne jest jeszcze kilka zmian w konfiguracji systemu, m.in.
Dodajemy do pliku „/etc/sysctl.conf”
vm.overcommit_memory = 1
a także np. do „/etc/rc.local” (pamiętając, aby wspomniany plik był wykonywalny)
echo never > /sys/kernel/mm/transparent_hugepage/enabled
Restartujemy Redia, a najlepiej cały serwersystemctl restart redis
lub
reboot
Na drugiej maszynie tj. slave ustawiamy dodatkowo (oprócz requirepass)
slaveof 10.2.0.244 6379
-> ustawiamy adres IP i port serwera master
masterauth tajnehaslo
-> taki sam kod jak ustawialiśmy na maszynie master
Restartujemy Rediasystemctl restart redis
Otwieramy logi na serwerze slave tj.
tail -f /var/log/redis/redis.log
i jak widzimy
22292:S 28 Feb 22:09:05.628 * Connecting to MASTER 10.2.0.244:6379
22292:S 28 Feb 22:09:05.629 * MASTER <-> SLAVE sync started
22292:S 28 Feb 22:09:05.629 * Non blocking connect for SYNC fired the event.
22292:S 28 Feb 22:09:05.629 * Master replied to PING, replication can continue...
22292:S 28 Feb 22:09:05.630 * Partial resynchronization not possible (no cached master)
22292:S 28 Feb 22:09:05.632 * Full resync from master: 5c197f66706ba201e4031ebc46b7f9c6becb90d1:1
22292:S 28 Feb 22:09:05.719 * MASTER <-> SLAVE sync: receiving 77 bytes from master
22292:S 28 Feb 22:09:05.719 * MASTER <-> SLAVE sync: Flushing old data
22292:S 28 Feb 22:09:05.719 * MASTER <-> SLAVE sync: Loading DB in memory
22292:S 28 Feb 22:09:05.719 * MASTER <-> SLAVE sync: Finished with success
To pełen sukces, mamy Redisa w modelu master-slave.