ASP.NET oferă capabilități de programare care practic stochează informații într-o aplicație ASP.NET. Funcționalitatea este similară cu obiectul Aplicație, dar are capacitatea de a menține dinamic informațiile în cache pe durata vieții aplicației ASP.NET. Stocarea în cache a datelor într-o aplicație poate îmbunătăți semnificativ performanța deoarece datele sunt locale pentru server și pot fi recuperate rapid. În loc să trebuiască să reinterogheze sursa originală de date. În special cel mai mare blocaj al sistemului actual este baza de date, iar utilizarea rațională a cache-ului poate reduce mult accesul inutil la baze de date, optimizând astfel performanța sistemului.
Obiectele cache îmbunătățesc capacitatea de a implementa notificări de expirare și callback bazate pe relevanță, care permit acțiuni asupra elementelor stocate în cache de către alți utilizatori ai aplicației de management sau de către ASP.NET însuși. Folosește obiectul Cache pentru a stoca orice tip (tip de valoare sau tip de aplicație) înainte de a le actualiza sau șterge. Cache-ul este un obiect mai flexibil decât un obiect de aplicație. Suportă:
1. Expirarea și ștergerea bazate pe relevanță - Obiectele cache oferă posibilitatea de a lega automat expirarea și ștergerea valorilor cache la un eveniment de fișier, o dată/oră specifică sau relativă sau la o altă cheie cache.
2. Gestionarea automată a blocajelor - Obiectele cache includ gestionarea internă a blocărilor, care asigură sincronizarea actualizărilor atomice (actualizări care pot fi plasate într-o operație de calcul).
3. Mecanism de callback - Obiectul cache oferă posibilitatea de a seta funcția de callback care să fie apelată atunci când se șterg elemente din cache.
Metoda de adunare a cache-ului include Add() sau Insert(), iar metoda Insert poate folosi parametri opționali pentru a adăuga cache-ul folosind ambii parametri impliciti:
Cache.Add(KeyName, KeyValue,Dependencies,AbsoluteExpiration,SlidingExpiration,Priority,CacheItemRemoveCallback);
Parametrii sunt: numele cache-ului, obiectul stocat în cache, dependența, timpul absolut de expirare, timpul relativ de expirare, prioritatea și evenimentele cauzate de expirarea cache-ului.
Dependențe de cache: dependențele de fișiere, alte dependențe de cache, dependențe de baze de date și metode de expirare sunt setate, iar când dependențele se schimbă, cache-ul este invalid și poate genera anumite evenimente.
1. Dependențe de fișiere: dependențe de cache pe fișiere xml:
- <p>DataSet dsProducts = new DataSet();</p><p>//...dsProducts数y据Y</p><p>CacheDependency fileDepends = new CacheDependency(Server.MapPath("Northwind.xml"));</p><p>Cache.Insert("dsProducts", dsProducts, fileDepends);</p>
Cod de copiere
2. Alte dependențe ale elementelor de cache:
- <p>object cacheData;</p><p>string[] fileDependsArray = { Server.MapPath("Northwind.xml") };</p><p>string[] cacheDependsArray = { "Depend0", "Depend1", "Depend2" };</p><p>CacheDependency cacheDepends = new CacheDependency(fileDependsArray, cacheDependsArray);</p><p>Cache.Insert("cacheName", cacheData, cacheDepends);</p>
Cod de copiere
3. Setarea timpului de expirare:
AbsoluteExpiration poate seta timpul absolut de expirare al cache-ului, de exemplu să expire după 30 de minute:
- Cache.Insert("cacheName ", "cacheValue", null, DateTime.Now.AddMinutes(30), Cache.NoSlidingExpiration);
Cod de copiere NoSlidingExpiration poate seta un timp relativ de expirare, dacă cache-ul nu este accesat în timpul stabilit de NoSlidingExpiration, dacă cache-ul expiră și nu este accesat pentru o anumită perioadă de timp, cache-ul nu va expira. Dacă accesați cache-ul în 30 de minute, acesta nu va expira:
- Cache.Insert("cacheName", "cacheValue", null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(30));
Cod de copiere
|