Redis
 sql >> Database >  >> NoSQL >> Redis

Come farebbe Redis a sapere se deve restituire dati memorizzati nella cache o dati freschi da DB

Redis non ha idea se i dati nel DB sono stati aggiornati.

Normalmente, utilizziamo Redis per memorizzare nella cache i dati come segue:

  1. Il client verifica se i dati, ad es. coppia chiave-valore, esiste in Redis.
  2. Se la chiave esiste, il client ottiene il valore corrispondente da Redis.
  3. In caso contrario, ottiene i dati dal DB e li imposta su Redis. Anche il client imposta una scadenza, ad esempio 5 minuti, per la coppia chiave-valore in Redis.
  4. Quindi eventuali richieste successive per la stessa chiave saranno servite da Redis. Anche se i dati in Redis potrebbero non essere aggiornati.
  5. Tuttavia, dopo 5 minuti, questa chiave verrà rimossa automaticamente da Redis.
  6. Vai al passaggio 1.

Quindi, per mantenere aggiornati i tuoi dati in Redis, puoi impostare un breve tempo di scadenza. Tuttavia, il tuo DB deve soddisfare molte richieste.

Se desideri ridurre ampiamente le richieste al database, puoi impostare un tempo di scadenza elevato. In modo che, il più delle volte, Redis possa servire le richieste con possibili dati obsoleti.

Dovresti considerare attentamente il compromesso tra rendimento e dati in stallo.