ASP.NET предоставляет программные возможности, которые по сути кэшируют информацию в ASP.NET приложении. Функциональность похожа на объект Application, но позволяет динамически поддерживать кэшированную информацию на протяжении всего срока жизни ASP.NET приложения. Кэширование данных в приложении значительно повышает производительность, поскольку данные локальны для сервера и могут быть быстро извлечены. Вместо того чтобы заново запрашивать исходный источник данных. Особенно крупным узким местом текущей системы является база данных, и рациональное использование кэша позволяет сократить множество ненужных доступов к базе данных, чтобы оптимизировать производительность системы.
Объекты кэша улучшают возможность реализовать уведомления о истечении срока действия и обратных вызовов на основе релевантности, что позволяет другим пользователям управляющего приложения или самим ASP.NET выполнять действия с кэшированными элементами. Используйте объект Cache для хранения любого типа (типа значения или типа приложения) перед обновлением или удалением. 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));
Копирование кода
|