webForumDet fria alternativet

Cachning och objekttillstånd

.NETur .NET

4 svar · 395 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

Jag har en fundering kring cachning och objekttillstånd. Vi antar att jag sparar kund X i cachen. Någon hämtar kund X från cachen precis innan cachen ska tömmas. Vad händer med kund X objektet för den som hann hämta objektet innan cachen rensades?

Medlem sedan juli 2003555 inlägg
#2

Det beror ju på hur objektet är konstruerat, men om vi utgår ifrån att objektet bara är en dum container som bara innehåller information och ingenting annat så kommer det hämtade objektet inte bry sig om att cachen har blivit tömd, den innehåller fortfarande samma gamla cachade information

Medlem sedan maj 20011 312 inlägg
#3

Är det ungefär så här det fungerar?

1. Kund X läggs i cachen vilket innebär att cachen pekar mot en minnesposition

2. När cachen töms så töms den på pekarna och inte av innehållet i minnespositionerna.

3. När kund X inte använts på ett tag så rensar Carbage Collectorn detta från minnet.

Medlem sedan okt. 2006224 inlägg
#4

Som jag uppfattat det (har bara använt memcache) så funkar det ungefär såhär:

1. Lagrar Kund X i cache (serialiseras till byte kod)

2. Vi hämtar ut Kund X ur cachen (deserialiserar och skapar ett nytt objekt, därav ny minnesposition)

3. Cachen töms på all byte kod

4. Vi kan fortfarande använda Kund X i vår applikation trots att cachen blivit tömd.

Många år sedan jag läste exakt hur det funka, men jag har för mig det var något sånt.

Medlem sedan dec. 2005664 inlägg
#5

Det finns om jag inte minns fel cache-lösningar där man kan lyssna på om objekt uppdateras/tas bort etc i cachen och att klienterna då kan agera på dessa events.

138 ms totalt · 3 externa anrop · v20260731065814-full.8a4e7caf
135 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)