Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Kopie zapasowe AOF i RDB w redis

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 .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sidekiq nie znajduje rekordów dla Rails Active Job

  2. RuntimeError:-ERR Nieznane polecenie uruchomie gem redis na Ruby

  3. Nowicjusz aplikacji czasu rzeczywistego - Node.JS + Redis lub RabbitMQ -> klient/serwer jak?

  4. Klient Php7 Redis na Alpine OS

  5. Jak używać redis PUBLISH/SUBSCRIBE z nodejs do powiadamiania klientów o zmianie wartości danych?