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

Skąd Redis miałby się dowiedzieć, czy musi zwrócić dane z pamięci podręcznej lub świeże dane z bazy danych?

Redis nie ma pojęcia, czy dane w DB zostały zaktualizowane.

Zwykle używamy Redis do buforowania danych w następujący sposób:

  1. Klient sprawdza, czy dane m.in. para klucz-wartość istnieje w Redis.
  2. Jeśli klucz istnieje, klient otrzymuje odpowiednią wartość z Redis.
  3. W przeciwnym razie pobiera dane z bazy danych i ustawia je na Redis. Również klient ustawia wygaśnięcie, powiedzmy 5 minut, dla pary klucz-wartość w Redis.
  4. Wtedy wszelkie kolejne żądania dotyczące tego samego klucza będą obsługiwane przez Redis. Chociaż dane w Redis mogą być nieaktualne.
  5. Jednak po 5 minut, ten klucz zostanie automatycznie usunięty z Redis.
  6. Przejdź do kroku 1.

Aby więc Twoje dane w Redis były aktualne, możesz ustawić krótki czas wygaśnięcia. Jednak Twoja baza danych musi obsługiwać wiele żądań.

Jeśli chcesz znacznie zmniejszyć żądania do bazy danych, możesz ustawić długi czas wygaśnięcia. Aby przez większość czasu Redis mógł obsługiwać żądania z możliwymi nieaktualnymi danymi.

Powinieneś dokładnie rozważyć kompromis między wydajnością a nieaktualnymi danymi.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. nie można połączyć się z kontenerem redis z kontenera aplikacji

  2. Redis + ActionController::Żywe wątki nie umierają

  3. redis węzła, zmienne są dzielone między klientami?

  4. Redis przechowuje listę w hashu

  5. Komunikacja między dwoma kontenerami Docker w systemie macOS 10.12