ASP.NET предоставя програмни възможности, които по същество кешират информация в ASP.NET приложение. Функционалността е подобна на обекта Application, но има възможност динамично да поддържа кеширана информация през целия живот на ASP.NET приложение. Кеширането на данните в приложение може значително да подобри производителността, тъй като данните са локални за сървъра и могат да бъдат извлечени бързо. Вместо да се налага да правиш повторно заявки към оригиналния източник на данни. Особено най-голямото тесно място на настоящата система е базата данни, а рационалното използване на кеша може да намали много ненужни достъпи до базата данни, за да оптимизира производителността на системата.
Кеш обектите подобряват възможността за реализиране на известия за изтичане и обратно изчакване, базирани на релевантност, които позволяват действия върху кеширани елементи в кеша от други потребители на управленското приложение или от самия ASP.NET. Използвайте обекта Cache, за да съхранявате всеки тип (тип стойност или тип приложение) преди да го обновите или изтриете. Кешът е по-гъвкав обект от обекта на приложението. Той поддържа:
1. Изтичане и изтриване, базирано на релевантност – Кеш обектите предоставят възможност за свързване на автоматично изтичане и изтриване на кеш стойности с файлово събитие, конкретна или относителна дата/час или друг кеш ключ.
2. Автоматично управление на заключване - Кеш обектите включват вътрешно управление на заключване, което осигурява синхронизация за атомарни актуализации (актуализации, които могат да се поставят в изчислителна операция).
3. Механизъм за обратно извикване - Кеш обектът предоставя възможност да се зададе функцията за обратно извикване при изтриване на кеш елементи.
Методът за добавяне на кеша включва Add() или Insert(), а методът Insert може да използва опционални параметри за добавяне на кеша, използвайки и двата стандартни параметъра:
Cache.Add(KeyName, KeyValue,Dependencies,AbsoluteExpiration,SlidingExpiration,Priority,CacheItemRemoveCallback);
Параметрите са: име на кеша, кеширан обект, зависимост, абсолютно време на изтичане, относително време на изтичане, приоритет и събития, причинени от изтичането на кеша.
Зависимости на кеша: зависимости от файлове, други зависимости на кеша, зависимости на база данни и методи за изтичане на срока на годност, и когато зависимостите се променят, кешът става невалиден и може да предизвика определени събития.
1. Зависимости от файлове: кеширащи зависимости върху 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>
Копирай код
2. Други зависимости от кеш елементи:
- <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>
Копирай код
3. Настройка на срока на годност:
AbsoluteExpiration може да зададе абсолютното време на изтичане на кеша, например да го настрои да изтича след 30 минути:
- Cache.Insert("cacheName ", "cacheValue", null, DateTime.Now.AddMinutes(30), Cache.NoSlidingExpiration);
Копирай код NoSlidingExpiration може да зададе относително време на изтичане, ако кешът не бъде достъпен в рамките на времето, определено от NoSlidingExpiration, ако кешът изтече и не бъде достъпен за определен период от време, кешът няма да изтече. Ако достъпите кеша в рамките на 30 минути, той няма да изтече:
- Cache.Insert("cacheName", "cacheValue", null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(30));
Копирай код
|