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

Jak zaktualizować redis po aktualizacji bazy danych?

Rzeczywisty magazyn danych i pamięć podręczna powinny być zsynchronizowane przy użyciu trzeciego podejścia, które już opisałeś w swoim pytaniu.

Gdy dodajesz dane do swojego magazynu ostatecznego (tj. bazy danych SQL), musisz umieścić te dane w kolejce do jakiejś magistrali usług lub kolejki wiadomości i pozwolić jakiejś usłudze asynchronicznej wykonać całą synchronizację przy użyciu jakiegoś procesu w tle.

Nie chcesz wchodzić w takie przypadki (gdy nie korzystasz z magistrali usług i usługi asynchronicznej):

  • Spowolnij żądania lub procesy, ponieważ użytkownik musi poczekać, aż dane zostaną zapisane zarówno w bazie danych, jak i w pamięci podręcznej.
  • Istnieje ryzyko niepowodzenia procesu buforowania i braku możliwości wprowadzenia zasad ponawiania prób (co zwykle jest funkcją wbudowaną w magistrali usług lub w niektórych kolejkach komunikatów). Ponadto ta awaria może zakończyć się częściowym lub całkowitym uszkodzeniem pamięci podręcznej i nie będziesz w stanie automatycznie i łatwo zaplanować niektórych zadań, aby naprawić tę sytuację.

Jeśli chodzi o używanie wygaśnięcia klucza Redis, to dobry pomysł. Ponieważ Redis może wygasać klucze za pomocą wbudowanego mechanizmu, nie należy implementować wygaśnięcia klucza z całego procesu w tle. Jeśli klucz istnieje, to dlatego, że jest nadal ważny.

BTW, nie zawsze będziesz w tej sprawie (jeśli klucz nie wygasł, oznacza to, że nie powinien zostać nadpisany). Może to zależeć od Twojej rzeczywistej domeny.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak powinienem używać Booksleeve z protobuf-net?

  2. Kolejka redis Laravel 5.5 jest zbyt wolna

  3. Jak skonfigurować JedisConnectionFactory do korzystania z SSL, aby nie otrzymywał błędu:JedisDataException:ERR nieszyfrowane połączenie jest zabronione?

  4. Redis:stan wyścigowy i jednowątkowy

  5. Redis skrypt usuwania symboli wieloznacznych za pomocą EVAL, SCAN i DEL zwraca polecenia Write niedozwolone po poleceniach niedeterministycznych