Jaka jest pełna nazwa Redis RDB? Tryb pracy trwałości danych pamięci Redis RDB

Pełna nazwa RDB toRedis database.

  • Jak sama nazwa wskazuje, RDB to baza danych Redis używana do przechowywania danych.
  • Dlatego dzięki trwałości RDB dane przechowywane w pamięci Redis są zapisywane do pliku RDB i zapisywane na dysku w celu uzyskania trwałości.
  • Cechą Redis jest to, że może utrwalać dane, to znaczy zapisywać dane z pamięci na dysk, aby zapewnić, że żadne dane nie zostaną utracone, a także może ładować dane z dysku do pamięci.

Jaka jest pełna nazwa Redis RDB? Tryb pracy trwałości danych pamięci Redis RDB

Operacje Redis na początku opierają się na pamięci, więc wydajność jest bardzo wysoka, ale po zamknięciu programu dane są tracone.

Dlatego musimy zapisywać dane w pamięci na dysku w określonych odstępach czasu, co w żargonie nazywa się migawką.

Podczas przywracania plik migawki jest zapisywany bezpośrednio w pamięci.

Jest to również jedna z głównych różnic między Redis i Memcached, ponieważ Memcached nie ma możliwości utrwalania.

Aby zapewnić trwałość danych pamięci Redis, Redis udostępnia nam następujące metody:

  • Metoda migawkowa (RDB, Redis DataBase): zapisz dane z pamięci na dysk w postaci binarnej w określonym momencie;
  • Dołącz tylko plik (AOF, Dołącz tylko plik), zapisz wszystkie polecenia operacji i dołącz do pliku w formie tekstowej;
  • Trwałość hybrydowa, nowa metoda po Redis 4.0, trwałość hybrydowa łączy w sobie zalety RDB i AOF.Przy zapisie najpierw zapisz aktualne dane na początek pliku w postaci RDB, a następnie zapisz kolejne polecenia operacji do pliku w postaci AOF, co może nie tylko zapewnić szybkość restartu Redis, ale także zmniejszyć ryzyko utraty danych .

Ponieważ każdy schemat trwałości ma określone scenariusze użycia.

Tryb pracy trwałości danych pamięci Redis RDB

  • RDB (Redis DataBase) to proces zapisywania migawki pamięci (Snapshot) w określonym momencie na dysk w postaci binarnej.
  • Migawki pamięci to to, co powiedzieliśmy powyżej.Odnosi się do stanu zapisu danych w pamięci w określonym momencie.
  • Jest to podobne do robienia zdjęcia: gdy robisz zdjęcie znajomemu, zdjęcie może natychmiast zarejestrować wszystkie obrazy tego znajomego.
  • Istnieją dwa sposoby wyzwalania RDB: jeden to wyzwalanie ręczne, a drugi to wyzwalanie automatyczne.

Ręcznie uruchom RDB

Istnieją dwie operacje ręcznego wyzwalania trwałości:saveIbgsave.

Główną różnicą między nimi jest to, czy blokować wykonywanie głównego wątku Redis.

1. Zapisz polecenie

Wykonanie polecenia zapisu po stronie klienta spowoduje utrwalenie Redis, ale spowoduje również, że Redis będzie w stanie blokowania.Nie będzie odpowiadać na polecenia wysyłane przez innych klientów, dopóki RDB nie zostanie utrwalony, więc należy go używać ostrożnie w środowisko produkcyjne.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Proces wykonania polecenia pokazano na rysunku 

2. polecenie bgsave

  • bgsave (zapisywanie w tle) to zapisywanie w tle.
  • Największą różnicą między nim a poleceniem save jest to, że bgsave rozwidla proces potomny w celu wykonania trwałości.
  • Cały proces ma miejsce tylko wtedy, gdy proces potomny jest rozwidleniem.Jest tylko krótka blokada.
  • Po utworzeniu procesu podrzędnego główny proces Redis może odpowiadać na żądania innych klientów.

z blokowaniem całego procesusavew porównaniu do poleceniabgsavePolecenie jest oczywiście bardziej odpowiednie dla nas do użycia.

127.0.0.1:6379> bgsave
Background Saving started # 提示开始后台保存 
127.0.0.1:6379>

Automatycznie uruchom RDB

Po omówieniu wyzwalania ręcznego przyjrzyjmy się wyzwalaniu automatycznemu.W pliku konfiguracyjnym możemy skonfigurować warunki automatycznego wyzwalania.

1. oszczędzaj

  • save mn oznacza, że ​​w ciągu m sekund, jeśli zmieni się n klawiszy, utrwalanie jest automatycznie wyzwalane.Parametry m i n można znaleźć w pliku konfiguracyjnym Redis.
  • Na przykład zapisz 60 1 oznacza, że ​​w ciągu 60 sekund, dopóki jeden klucz się zmieni, zostanie uruchomiona trwałość RDB.
  • Istotą automatycznego wyzwalania trwałości jest to, że jeśli zostaną spełnione ustawione warunki wyzwalania, Redis automatycznie wykona polecenie bgsave jeden raz.

Uwaga: Gdy ustawionych jest wiele poleceń save mn, każdy jeden warunek wyzwoli utrwalanie.

Na przykład ustawiamy następujące dwie komendy save mn:

save 60 10
save 600 20
  • Gdy wartość klucza Redis zmieni się 60 razy w ciągu 10 s, zostanie wyzwolona trwałość;
  • Jeśli klucz Redis zmieni się w ciągu 60 s, a wartość zmieni się mniej niż 10 razy, Redis określi, czy klucz Redis został zmodyfikowany co najmniej 600 razy w ciągu 20 s, a jeśli tak, wywoła utrwalenie.

2. Flushall

  • Polecenie flushall służy do opróżniania bazy danych Redis.
  • Należy go używać ostrożnie w środowisku produkcyjnym.
  • Gdy Redis wykonuje polecenie flushall, uruchamia automatyczne utrwalanie i czyści plik RDB.

3. Wyzwalacz synchronizacji master-slave

W przypadku replikacji Redis master-slave, gdy węzeł podrzędny wykonuje pełną operację replikacji, węzeł nadrzędny wykonuje polecenie bgsave, aby wysłać plik RDB do węzła podrzędnego.Proces ten automatycznie wyzwala trwałość Redis.

Redis może wysyłać zapytania o bieżące parametry konfiguracyjne za pomocą poleceń.

Format polecenia zapytania to:config get xxx

Na przykład, jeśli chcesz uzyskać ustawienie nazwy przechowywania pliku RDB, możesz użyć config get dbfilename .

Efekt wykonania jest następujący:

127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump.rdb"

Ponieważ serwer Redis zablokuje się podczas ładowania pliku RDB, dopóki ładowanie nie zostanie zakończone, może to spowodować długi czas i brak dostępu do strony internetowej.

Jeśli chcesz ręcznie usunąć plik pamięci podręcznej RDB dump.rdb z Redis, możesz użyć następującego polecenia, aby znaleźć ścieżkę przechowywania pliku dump.rdb▼

find / -name dump.rdb
  • Następnie ręcznie usuń plik pamięci podręcznej dump.rdb przez SSH.

Redis ustawia konfigurację RDB

Jeśli chodzi o ustawienie konfiguracji RDB, możesz użyć następujących dwóch sposobów:

  1. Ręcznie zmodyfikuj plik konfiguracyjny Redis
  2. Użyj ustawień wiersza poleceń, config set dir "/usr/data" to polecenie przechowywania, aby zmodyfikować plik RDB

Uwaga: Konfigurację w redis.conf można uzyskać poprzez config get xxx i zmodyfikować poprzez config set xxx wartość, a metoda ręcznej modyfikacji pliku konfiguracyjnego Redis jest globalnie skuteczna, to znaczy parametry ustawione przez ponowne uruchomienie serwera Redis nie będą zostaną utracone, ale zmodyfikowane za pomocą polecenia , zostaną utracone po ponownym uruchomieniu Redis.

Jeśli jednak chcesz ręcznie zmodyfikować plik konfiguracyjny Redis, aby odniósł skutek natychmiast, musisz ponownie uruchomić serwer Redis, a metoda polecenia nie wymaga ponownego uruchomienia serwera Redis.

Odzyskiwanie plików RDB

Po uruchomieniu serwera Redis, jeśli plik RDB dump.rdb istnieje w katalogu głównym Redis, Redis automatycznie załaduje plik RDB w celu przywrócenia trwałych danych.

Jeśli w katalogu głównym nie ma pliku dump.rdb, najpierw przenieś plik dump.rdb do katalogu głównego Redis.

Oczywiście po uruchomieniu Redis pojawiają się informacje w dzienniku, które pokażą, czy plik RDB jest załadowany.

Serwer Redis blokuje się podczas ładowania pliku RDB do momentu zakończenia ładowania.

Teraz wiemy, że trwałość RDB dzieli się na dwa sposoby: wyzwalanie ręczne i wyzwalanie automatyczne:

  1. Jego zaletą jest to, że plik pamięci jest mały, a odzyskiwanie danych jest szybsze po uruchomieniu Redis.
  2. Minusem jest to, że istnieje ryzyko utraty danych.

Odzyskiwanie plików RDB jest również bardzo proste.Po prostu umieść pliki RDB w katalogu głównym Redis, a Redis automatycznie załaduje i przywróci dane po uruchomieniu.

Plusy i minusy RDB

1) zalety RDB

Zawartość RDB to dane binarne, które zajmują mniej pamięci, są bardziej zwarte i są bardziej odpowiednie jako plik kopii zapasowej;

RDB jest bardzo przydatny do odzyskiwania po awarii, jest to skompresowany plik, który można szybciej przesłać na zdalny serwer w celu odzyskania usługi Redis;

RDB może znacznie poprawić szybkość Redis, ponieważ główny proces Redis rozwidla proces podrzędny w celu utrwalenia danych na dysku.

Główny proces Redis nie wykonuje operacji, takich jak dyskowe we/wy;

W porównaniu z plikami w formacie AOF pliki RDB uruchamiają się szybciej.

2) Wady RDB

Ponieważ RDB może zapisywać dane tylko w określonych odstępach czasu, jeśli usługa Redis zostanie przypadkowo zakończona w środku, dane Redis zostaną utracone na pewien czas;

Proces, w którym RDB wymaga częstego rozwidlenia, aby zapisać go na dysku za pomocą wpisu podrzędnego.

Jeśli zestaw danych jest duży, rozwidlenie może być czasochłonne, a jeśli zestaw danych jest duży, wydajność procesora jest niska, co może spowodować, że Redis nie będzie mógł obsługiwać klientów przez kilka milisekund lub nawet sekundę.

Oczywiście możemy również wyłączyć trwałość, aby poprawić wydajność wykonywania Redis.

Jeśli nie jesteś wrażliwy na utratę danych, możesz to zrobić, gdy klient się połączy config set save "" Polecenie wyłączenia trwałości dla Redis.

redis.conf, jeśli wsaveZakomentuj wszystkie konfiguracje na początku, a trwałość również zostanie wyłączona, ale generalnie nie jest to robione.

Nadzieja Chen Weiliang Blog ( https://www.chenweiliang.com/ ) udostępniono „Jaka jest pełna nazwa Redis RDB? Redis RDB w trybie działania trwałości danych w pamięci”, pomoże.

Zapraszamy do udostępnienia linku do tego artykułu:https://www.chenweiliang.com/cwl-26677.html

Witamy na kanale Telegram bloga Chen Weiliang, aby uzyskać najnowsze aktualizacje!

🔔 Bądź pierwszą osobą, która otrzyma cenny „Przewodnik po użyciu narzędzia AI do marketingu treści ChatGPT” w głównym katalogu kanału! 🌟
📚 Ten przewodnik zawiera ogromną wartość, 🌟To rzadka okazja, nie przegap jej! ⏰⌛💨
Udostępnij i polub, jeśli chcesz!
Twoje udostępnianie i polubienia to nasza ciągła motywacja!

 

发表 评论

Twoj adres e-mail nie bedzie opublikowany. 必填 项 已 用 * 标注

przewiń na górę