30. maj 2008 - 15:03Der er
7 kommentarer og 1 løsning
Hvad er best practice når man cacher data objekter?
Hej eksperter,
Jeg har en række data objekter som jeg gerne vil cache, men jeg er lidt i tvivl om hvordan man kan gøre det smartest. Som jeg ser det kan man vælge mellem 2 alternativer:
1. Sætte en udløbsdato for sin cache (absolut eller slide) 2. Bevare cachen for evigt og opdatere den efter behov.
Med første alternativ får man et problem hvis datakilden ikke er tilgængelig. I det øjeblik man forsøger at hente data vil cache objektet være udløbet og man vil ikke have noget data at falde tilbage på.
Det problem kan man løse ved at bruge 2. alternativ. Så opdaterer man kun hvis det nye data objekt er valid og indeholder data. Problemet her er bare, at cachen skal opdateres periodevis uafhængigt af websitet (f.eks én gang i døgnet), og det er ikke altid ligetil når man ikke selv hoster websitet.
Hvad er best practice når man vil bruge cache? Findes der et par gode artikler om emnet som ikke bare forklarer hvordan man konkret anvender en bestemt implementering af cache? På forhånd tak!
Du har ret erikjacobsen - jeg fik vist ikke formuleret den rigtigt :-) Jeg mente ikke at datakilden ikke ville være tilgængelig, men at man kunne få ikke-valid data tilbage (eksempelvis en DataTable med 0 rækker).
Helt konkret parser jeg noget data fra et website (desværre ingen webservice), så udover at websitet kan brage ned er sandsynligheden for at data ændrer sig ret høj. Derfor ville jeg også gerne have et dataobjekt at kunne falde tilbage på hvis der opstår en fejl i parsing af data.
Så kan du hente det fra webstedet, og tilføje en række i en tabel i din database. Du viser den nyeste, og du putter kun noget i, hvis det ser ud til at gå godt.
Caching kan du så overveje, hvis du har en flaskehals, som caching vil kunne løse.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.