sql >> Database >  >> NoSQL >> Redis

Hoe zou Redis te weten komen of het gegevens in de cache of nieuwe gegevens uit DB moet retourneren?

Redis heeft geen idee of de gegevens in DB zijn bijgewerkt.

Normaal gesproken gebruiken we Redis om gegevens als volgt in de cache op te slaan:

  1. Cliënt controleert of de gegevens, b.v. sleutel-waardepaar, bestaat in Redis.
  2. Als de sleutel bestaat, krijgt de client de bijbehorende waarde van Redis.
  3. Anders haalt het gegevens uit DB en zet het op Redis. Ook stelt de klant een vervaldatum in, zeg 5 minuten, voor het sleutel/waarde-paar in Redis.
  4. Vervolgens worden alle volgende verzoeken om dezelfde sleutel door Redis afgehandeld. Hoewel de gegevens in Redis mogelijk verouderd zijn.
  5. Echter, na 5 minuten, wordt deze sleutel automatisch uit Redis verwijderd.
  6. Ga naar stap 1.

Om uw gegevens in Redis up-to-date te houden, kunt u dus een korte vervaltijd instellen. Uw database moet echter veel verzoeken verwerken.

Als u verzoeken aan DB grotendeels wilt verminderen, kunt u een grote vervaltijd instellen. Zodat Redis meestal de verzoeken kan bedienen met mogelijk verouderde gegevens.

Je moet goed nadenken over de afweging tussen prestaties en verouderde gegevens.



  1. blpop stopt na een tijdje met het verwerken van de wachtrij

  2. MongoDB diacriticInSensitive zoekopdracht toont niet alle geaccentueerde (woorden met diakritische teken) rijen zoals verwacht en vice versa

  3. Scan strings met nodejs in redis

  4. Resque op Heroku cedar stack Het aantal arbeiders bestaat nog nadat de arbeider is beëindigd