Czy to oznacza, że praktycznie otrzymuję kopie zapasowe co 60 sekund?
NIE . Redis zapisuje dane w tle po 60 sekundach, jeśli zostało zmienionych co najmniej 10000 kluczy . W przeciwnym razie nie zapisuje w tle.
Czy użycie appendonly on i appendfsync everysec spowoduje obniżenie wydajności? Czy uderzy w procesor? Obciążenie zapisu jest za wysokie.
Zależy to od wielu rzeczy, m.in. wydajność dysku (SSD VS HDD), obciążenie zapisu/odczytu (QPS), model danych i tak dalej. Musisz wykonać test porównawczy z własnymi danymi w określonym środowisku.
Po ponownym uruchomieniu serwera redis z tymi nowymi ustawieniami nadal stracę ostatnie 60 sekund moich danych, prawda?
NIE . Jeśli włączysz zarówno AOF, jak i RDB, po ponownym uruchomieniu Redis plik AOF zostanie użyty do odbudowania bazy danych. Ponieważ konfigurujesz go na appendfsync everysec
, stracisz tylko ostatnią 1 sekundę danych.
Czy czasy ponownego uruchomienia są czymś, o co należy się martwić? Mój plik dump.rdb jest mały; ~90MB.
Jeśli włączysz AOF, a po ponownym uruchomieniu Redis, ponownie odtwarza dzienniki w pliku AOF, aby odbudować bazę danych. Zwykle plik AOF jest większy niż plik RDB i może być wolniejszy niż odzyskiwanie z pliku RDB. Czy powinieneś się tym martwić? Wykonaj test porównawczy z własnymi danymi w określonym środowisku.
EDYTUJ
WAŻNA UWAGA
Załóżmy, że już skonfigurowałeś Redis do korzystania z zapisywania RDB i zapisujesz dużo danych w Redis. Po chwili chcesz włączyć zapisywanie AOF. NIGDY NIE MODYFIKUJ PLIKU KONFIGURACJI, ABY WŁĄCZYĆ AOF I PONOWNIE URUCHOMIĆ REDIS, W przeciwnym razie STRACISZ WSZYSTKO .
Ponieważ po ustawieniu appendonly yes
w redis.conf i zrestartuj Redis, załaduje dane z pliku AOF, bez względu na to, czy plik istnieje, czy nie. Jeśli plik nie istnieje, tworzy pusty plik i próbuje załadować dane z tego pustego pliku. Więc stracisz wszystko.
W rzeczywistości nie musisz ponownie uruchamiać Redis, aby włączyć AOF. Zamiast tego możesz użyć config set
polecenie do dynamicznego włączenia:config set appendonly yes
.