Jak skonfigurować replikację Redis (z wyłączonym w trybie klastra) w Centos 8 - Część 1

Jak skonfigurować replikację Redis (z wyłączonym w trybie klastra) w Centos 8 - Część 1

Redis (Zdalny serwer słownika) jest bardzo popularnym i szeroko stosowanym open source, szybkim, rozproszonym i wydajnym w pamięci bazy danych/serwera struktury danych.

Oferuje bogaty zestaw funkcji, które sprawiają, że jest skuteczny w szerokim zakresie przypadków użycia: jako baza danych, warstwa buforowania, broker wiadomości lub kolejka; Obowiązujące w aplikacjach internetowych, aplikacjach do czatu i przesyłania wiadomości, gier, analizie danych w czasie rzeczywistym i wiele więcej.

Obsługuje elastyczne struktury danych, replikację asynchroniczną master-niewolników w celu skalowania wydajności odczytu i ochrony przed utratą danych, odchylenie po stronie klienta w celu skalowania wydajności, dwie formy trwałości do pisania danych w pamięci w kompaktowym formacie, klastrowaniu i klastrowaniu i partycjonowanie. Posiada również automatyczne awaryjne wdrażanie wysokiej dostępności za pośrednictwem Redis Sentinel, Skrypty Lua, transakcje, i wiele więcej.

Bycie Brak SQL lub nierelacyjna baza danych, Redis oferuje pewne korzyści z wydajności w stosunku do tradycyjnych systemów baz danych (takich jak Mysql/Mariadb, PostgreSQL, itp.), ponieważ wszystkie jego dane znajdują się lub są przechowywane w pamięci, dzięki czemu jest łatwo dostępny dla aplikacji, podczas gdy tradycyjne bazy danych muszą zapisać wszystkie dane lub odczytać z dysku lub źródła zewnętrznego.

Redis stał się coraz powszechniejszym wyborem buforowania, który pozwala na ponowne wykorzystanie danych buforowanych (przechowywanych w przestrzeni pamięci głównej aplikacji), a nie zawsze zapytanie o bazę danych dla często używanych danych. To jest fantastyczny towarzysz RDMS (Relacyjne systemy zarządzania bazami danych) Aby ostatecznie poprawić wydajność aplikacji.

W tym trzyczęściowym Redis Seria samouczków, omówimy sposób konfigurowania i korzystania z niektórych kluczowych funkcji Redis, które są replikacją, wysoka dostępność za pomocą Redis Sentinel I Klaster Redis, Artykuły to:

Część 1: Jak skonfigurować replikację Redis (z wyłączonym w trybie klastra) w Centos 8 Część 2: Jak skonfigurować Redis dla wysokiej dostępności z Sentinel w Centos 8 Część 3: Jak skonfigurować klaster Redis (z włączonym trybem klastra) w Centos 8

Ten przewodnik pokazuje, jak skonfigurować Replikacja redis (z Wyłączony tryb klastra) W Centos 8 Linux, w tym sposób instalacji Redis, skonfigurowanie głównych i replik oraz testowanie replikacji.

Ważny: A Klaster Redis (I.e a Klaster replikacji) z wyłączonym trybem klastra ma pojedynczą grupę węzłów (e.g a gospodarz i jedna lub dwie repliki), podczas gdy klaster Redis z włączonym trybem klastra może składać się z dwóch lub więcej grup węzłów (e.g trzech mistrzów posiadających niewolników lub dwóch).

Wymagania wstępne:

  1. Serwery z instalacją Centos 8

Konfiguracja środowiska testowego

Serwer Master Redis: 10.42.0.247 Redis Replica1/Slave1: 10.42.0.21 Redis Replica2/Slave2: 10.42.0.34 
Logiczna reprezentacja diagramu replikacji Redis

Z powyższą konfiguracją (która ma pojedynczy węzeł odczytu/zapisu podstawowy/główny i 2 węzły repliki tylko do odczytu), mamy jedną grupę węzłów, która zawiera wszystkie dane klastra w każdym węźle. Gdy niewolnik połączy się z głównym, odbiera początkową kopię pełnej bazy danych, a wszelkie dane, które wcześniej istniały na niewolniku, zostaną odrzucone.

Poza tym klient może pisać tylko do głównego, ale odczytać z dowolnego węzła w klastrze. I jak pisze są wykonywane na mistrzu, propagowali się do wszystkich podłączonych niewolników w celu aktualizacji zestawów danych niewolników w czasie rzeczywistym.

Krok 1: Instalowanie Redis na Centos 8

1. Na początek zaloguj się do wszystkich Centos 8 węzły za pośrednictwem SSH, a następnie zainstaluj Redis Pakiet na wszystkich węzłach (Master i Replicas) za pomocą menedżera pakietów DNF, jak pokazano.

# DNF instaluj @Redis 

2. Po zakończeniu Redis instalacja pakietu, uruchom Redis usługa, włącz go automatycznie uruchamianie od każdego rozruchu systemu i sprawdzanie, czy jest uruchomiony w następujący sposób.

# Systemctl Start Redis # Systemctl Włącz Redis # Systemctl Status Redis 

3. Możesz również potwierdzić, że Redis serwer jest uruchomiony, sprawdzając porty słuchowe za pomocą polecenia SS, w następujący sposób.

# ss -ltpn | Grep Redis-Server 
Potwierdź porty serwera Redis

Krok 2: Konfigurowanie serwera Redis Master

4. Redis jest konfigurowany za pomocą /etc/redis.conf plik konfiguracyjny, samopokumowany przykładowy plik konfiguracyjny. Najpierw utwórz kopię zapasową oryginalnego pliku, a następnie otwórz go do edycji za pomocą wybranego edytora wiersza poleceń.

# cp /etc /redis.conf /etc /redis.conf.org # vi /etc /redis.conf 

5. Domyślnie a Redis Instancja jest skonfigurowana do słuchania i akceptowania połączeń w Pętla interfejs, za pomocą dyrektywy BIND. Aby komunikować się z replikami, główny należy skonfigurować do słuchania na IPv4 Adres Loopback i jego adres IP LAN I I.mi 10.42.0.247.

Bind 127.0.0.1 10.42.0.247 

6. Następnie ustaw parametr w trybie chronionym na NIE Aby umożliwić komunikację z replikami, jak pokazano.

NR w trybie chronionym 

Również Redis słucha w porcie 6379 który jest ustawiony za pomocą Port dyrektywa. To jest port danych do komunikowania się z interfejsami API aplikacji lub klientami CLI.

Port 6379 
Konfigurowanie serwera Redis Master

7. Aby opcjonalnie zabezpieczyć Master-Replica komunikacja, możemy chronić mistrza za pomocą wymaganie Dyrektywa, aby klienci/repliki musiały wydać hasło do uwierzytelnienia przed uruchomieniem dowolnych poleceń lub rozpoczęciem procesu synchronizacji replikacji, w przeciwnym razie Master odmówi żądania klienta/repliki (pamiętaj o ustawieniu bezpiecznego hasła).

Użyjemy następującej opcji do celów demonstracyjnych, aby pokazać, jak to działa.

wymaganie [chronione e -mail] 
Ustaw hasło do uwierzytelnienia

8. Również dzienniki redis są przechowywane w /var/log/redis/redis.dziennik plik, jest ustawiany za pomocą plik dziennika dyrektywa i domyślny poziom gadatości serwera jest ogłoszenie, zdefiniowane za pomocą Loglevel parametr.

LogLevel UWAGA LOGFILE/VAR/LOG/REDIS/REDIS.dziennik 
Ustaw plik dziennika Redis i poziom dziennika

9. Od Systemd jest domyślnym menedżerem systemu i serwisu w Centos 8, Możesz skonfigurować Redis wchodzić w interakcje z Systemd drzewo nadzoru, ustawiając nadzorowany parametr do Systemd.

Nadzorowany systemd 
Ustaw nadzorcę Redis na systemd

10. Po dokonaniu wszystkich niezbędnych konfiguracji zapisz plik i zamknij go. Następnie uruchom ponownie Redis Usługa w celu zastosowania nowych zmian.

# Systemctl Demon-Reload # Systemctl restart redis 

11. Aby uzyskać dostęp do Redis serwer, musimy użyć redis-cli (Interfejs wiersza poleceń do Redis-Server). Domyślnie łączy się z serwerem na Lokalny Gospodarz (Na 127.0.0.1 Port 6379). Zauważ, że ponieważ serwer jest zabezpieczony od klientów za pomocą hasła, uruchamianie polecenia przed uwierzytelnieniem powinno się nie udać.

Użyj Auth polecenie podanie hasła do uwierzytelnienia, jak pokazano na poniższym zrzucie ekranu.

# redis-cli 127.0.0.1: 6379> Lista klientów 127.0.0.1: 6379> Auth [e -mail chroniony] 127.0.0.1: 6379> Lista klientów 
Uzyskaj dostęp do serwera Redis za pośrednictwem Redis CLI

12. Aby połączyć się z replika (Po skonfigurowaniu ich zgodnie z opisem w następnej sekcji), użyj -H I -P Opcje określania odpowiednio adresu IP/hosta repliki i portu (nie ten port 6379 musi być otwarty w zaporze repliki).

# redis -cli -h 10.42.0.21 -p 6379 

13. Następnie otwórz Redis Port danych serwera w zaporze, aby umożliwić połączenia przychodzące z głównym, a następnie ponownie załaduj reguły zapory za pomocą polecenia Firewall-CMD, jak pokazano.

um 

Krok 3: Konfigurowanie repliki/serwerów niewolników Redis

14. Aby szybko ustawić Redis instancja jako replika w locie, użyj redis-cli użyteczność i zadzwoń Replika polecenie jak pokazano.

# Redis-cli replika 10.42.0.247 6379 lub # redis-cli 127.0.0.1: 6379> Replika 10.42.0.247 6379 
Połącz się z instancją Master Redis

15. Aby połączenie replikacji było trwałe, musisz wprowadzić następujące zmiany w pliku konfiguracyjnym. Zacznij od kopii zapasowej oryginalnego pliku, a następnie otwórz go do edycji.

# cp /etc /redis.conf /etc /redis.conf.org # vi /etc /redis.conf 

16. Aby umożliwić klientom połączenie się z repliką w celu odczytania danych, dodaj replikę adresu IP do dyrektywy BIND.

# Replica1 Bind 127.0.0.1 10.42.0.21 # Replica2 Bind 127.0.0.1 10.42.0.34 

Ustawienie instancji Redis jako repliki

17. Aby skonfigurować instancję Redis jako replika, Użyj replika Parametr i ustaw adres IP węzła głównego (lub nazwa hosta) i Portuj jako wartości.

Replika 10.42.0.247 6379 

Ustawienie repliki, aby uwierzytelnić się z Master

18. Następnie, ponieważ nasza instancja główna jest chroniona za pomocą hasła, musimy ustawić hasło w konfiguracji repliki, aby umożliwić uwierzytelnianie się do głównego MasterAuth parametr.

MasterAuth [e -mail chroniony] 

19. Dodatkowo, gdy replika przegrywa połączenie z głównym lub po wchodzeniu replikacji, replika jest skonfigurowana do odpowiedzi na żądania klienta, być może z „przeterminowany" dane. Ale jeśli jest to pierwsza synchronizacja, zestaw danych może być po prostu pusty. To zachowanie jest kontrolowane przez DATA-STALE REPLIKA parametr.

I od tego czasu Redis 2.6 Domyślnie repliki są tylko do odczytu, jest to kontrolowane przez tylko odczyt repliki parametr. Możesz dokonać innych regulacji konfiguracji repliki, aby odpowiadały potrzebom aplikacji.

20. Po wprowadzeniu wszystkich niezbędnych zmian uruchom ponownie usługę Redis na wszystkich replikach.

# Systemctl restart redis 

21. Również otwarty port 6379 w zaporze, aby umożliwić połączenia od mistrza i klientów do replik i ponownie załaduj zasady zapory.

# Firewall-CMD-Zone = public --perManenent --add-port = 6379/tcp # Firewall-CMD--RELOAD 

Krok 4: Sprawdź status replikacji mistrzowskiej

22. Kiedyś Master-Replica Konfiguracja replikacji jest zakończona, możemy sprawdzić, czy konfiguracja działa dobrze w następujący sposób.

Na mistrzu uruchom następujące polecenia.

# redis-cli 127.0.0.1: 6379> Auth [e -mail chroniony] 127.0.0.1: 6379> Replikacja informacji 
Sprawdź informacje o relokacji Redis na Master

23. Sprawdź także status replikacji w replikach/niewolnikach w następujący sposób.

# redis-cli 127.0.0.1: 6379> Replikacja informacji 
Sprawdź informacje o replikacji Redis na replice Redis 1 Sprawdź informacje o replikacji Redis na replice Redis 2

23. Teraz przetestujmy replikację według ustawień a kluczowa wartość w instancji głównej i sprawdź, czy dane są synchronizowane z replikami.

Na mistrzu zrób to:

# redis-cli 127.0.0.1: 6379> Auth [e -mail chroniony] 127.0.0.1: 6379> Ustaw domenę www.Tecmint.com ' 
Ustaw wartość kluczową w instancji głównej

24. Następnie sprawdź, czy dane zostały zsynchronizowane z replikami, jak pokazano.

# redis-cli 127.0.0.1: 6379> Zdobądź domenę 
Sprawdź status synchronizacji danych na replikach

Ochrona głównego wystąpienia przed ryzykiem utraty niektórych zapisów

25. Redis ma funkcję, która umożliwia instancję główną ograniczenie ryzyka utraty niektórych zapisów w przypadku braku wystarczającej liczby replik, do określonej liczby sekund.

Oznacza to, że mistrz może przestać akceptować pisze, jeśli jest ich mniej niż N Połączone repliki, mając opóźnienie mniej lub równe niż M sekundy, kontrolowane przez Min-Replicas-to-Write I Min-Replicas-Max-lag odpowiednio opcje.

Aby je ustawić, odkształcić i ustaw wartości zgodnie z wymaganiami konfiguracji /etc/redis.conf, Jak pokazano na poniższym zrzucie ekranu. Ta konfiguracja oznacza, że ​​od ostatniego pingu po repliki, po 10 sekundach, jeśli w Internecie jest mniej niż 2 repliki, mistrz przestanie przyjmować zapisy.

Min-Replicas-to-Write 2 min-replicas-max-lag 10 
Ochrona Mistrza Redisa przed utratą pisma

W pozostałej części można znaleźć więcej opcji /etc/redis.conf Plik konfiguracyjny i bardziej szczegółowe odczyt o replikacji w dokumentacji Redis.

W następnym artykule omówimy, jak skonfigurować Redis dla wysokiej dostępności z Sentinel w Centos 8. Do tego czasu pozostań zamknięty i pamiętaj, aby podzielić się swoimi choć i pytaniami przy użyciu naszego formularza komentarza poniżej, możesz do nas skontaktować.