sql >> Databasteknik >  >> NoSQL >> Redis

Hur uppdaterar man redis efter uppdatering av databasen?

Faktisk datalagring och cache bör synkroniseras med det tredje tillvägagångssättet som du redan har beskrivit i din fråga.

När du lägger till data till din definitiva lagring (dvs. din SQL-databas), måste du köa dessa data till någon tjänstebuss eller meddelandekö och låta någon asynkron tjänst göra hela synkroniseringen med någon form av bakgrundsprocess.

Du vill inte komma in i detta fall (när du inte använder en servicebuss och asynkron tjänst):

  • Gör dina förfrågningar eller processer långsammare eftersom användaren måste vänta tills data både lagras i din databas och cache.
  • Har risk för ett misslyckande under cachningsprocessen och att inte kunna ha en policy för att försöka igen (vilket vanligtvis är en inbyggd funktion i en servicebuss eller vissa meddelandeköer). Detta misslyckande kan också hamna i en partiell eller fullständig cache-korruption och du kommer inte att automatiskt och enkelt kunna schemalägga någon uppgift för att fixa den här situationen.

Det är en bra idé att använda Redis-nyckelns utgång. Eftersom Redis kan förfalla nycklar med sin inbyggda mekanism, bör du inte implementera nyckelförfall från hela bakgrundsprocessen. Om en nyckel finns beror det på att den fortfarande är giltig.

BTW, du kommer inte alltid att vara på det här fallet (om en nyckel inte har gått ut betyder det att den inte ska skrivas över). Det kan bero på din faktiska domän.




  1. Mongodb fråga specifik månad|år inte datum

  2. förbund på samma samling i mongodb

  3. Vad är det enklaste sättet att hitta de största föremålen i Redis?

  4. Enhetstestning med MongoDB