Поделиться через


Кэширование данных приложения

Обновлен: Ноябрь 2007

ASP.NET обладает мощным и простым в использовании механизмом кэширования, который позволяет хранить в памяти объекты, создание которых требует значительных серверных ресурсов. Кэширование данных типов ресурсов может существенно повысить производительность приложения.

Кэширование реализуется классом Cache с экземплярами кэша, закрытыми для каждого приложения. Время жизни кэша привязано к приложению. При перезапуске приложения объект Cache создается заново.

При разработке класса Cache особое внимание было уделено максимальной простоте в использовании. Можно поместить элементы в Cache и позже извлечь их с помощью пары ключ-значение. Примеры того, как это сделать см. в разделах Практическое руководство. Добавление элементов в объект Cache и Практическое руководство. Извлечение значений кэшированных элементов.

Класс Cache предоставляет мощные средства, позволяющие настроить способ кэширования и время хранения элементов в кэше. Например, когда системной памяти становится недостаточно, из кэша автоматически удаляются редко используемые или низкоприоритетные элементы для освобождения памяти. Данный способ называется очисткой и является одним из способов, с помощью которого кэш гарантирует, что устаревшие данные не используют дорогостоящие ресурсы сервера.

Можно указать объекту Cache присвоить отдельным элементам более высокий приоритет по сравнению с прочими при выполнении очистки. Чтобы указать важность элемента, можно указать одно из значений перечисления CacheItemPriority при добавлении элемента с помощью методов Add или Insert.

Кроме того, при добавлении элемента в кэш с помощью методов Add или Insert можно задать для него политику сроков действия. Можно определить время жизни элемента с помощью указания точного времени устаревания элемента (абсолютный срок действия), используя значение DateTime. Кроме того, можно указать скользящий срок действия с помощью значения TimeSpan, которое позволяет определить интервал времени, оставшийся до окончания срока действия элемента, на основе времени последнего обращения к элементу. После окончания срока действия элемента он удаляется из кэша. При попытке извлечь его значение будет возвращено значение null (Nothing в Visual Basic) до тех пор, пока элемент вновь не будет добавлен в кэш.

Для изменяющихся элементов, помещенных в кэш, в частности тех, которые требуют регулярного обновления данных или остаются верными лишь в течении определенного времени, обычно устанавливается соответствующая политика сроков действия, чтобы эти элементы сохранялись в кэше лишь такой промежуток времени, в течение которого их данные остаются актуальными. Так, например, при написании приложения, которое отслеживает счет в спортивных матчах, получая данные с другого веб-сайта, счет в игре можно кэшировать до тех пор, пока этот счет не изменится на веб-узле источника. В этом случае можно установить политику сроков действия, основанную на частоте обновления счета на другом веб-сайте. Можно написать код, который будет определять, не просрочен ли счет в кэше. Если счет не просрочен, то код может считать его с исходного веб-узла и добавить в кэш новое значение.

И, наконец, ASP.NET позволяет определить актуальность кэшированного элемента на основе внешнего файла или каталога (файла зависимости) или другого кэшированного элемента (ключа зависимости). Если зависимость изменится, кэшированный элемент объявляется неактуальным и удаляется из кэша. Эту методику можно использовать для удаления элементов из кэша при изменении источников данных этих элементов. Так, например, при создании приложения, которое обрабатывает финансовые данные, извлекая их из XML-файла, можно поместить данные из файла в кэш и поддерживать зависимость данных от этого XML-файла. При обновлении файла элемент удаляется из кэша, приложение повторно считывает XML-файл и помещает обновленные данные в кэш.

6hbbsfk6.alert_note(ru-ru,VS.90).gifПримечание.

Объект Cache не содержит сведений о содержимом элемента, который в нем размещается. Он просто хранит ссылку на этот объект. Кроме того, он предоставляет методы для отслеживания его зависимостей и установки политики сроков действия.

Дополнительные сведения по использованию этих средств см. в разделе Практическое руководство. Добавление элементов в объект Cache.

См. также

Задачи

Практическое руководство. Добавление элементов в объект Cache

Практическое руководство. Извлечение значений кэшированных элементов

Практическое руководство. Удаление элементов из кэша в ASP.NET

Практическое руководство. Уведомление приложения об удалении элемента из кэша

Основные понятия

Общие сведения о кэшировании в ASP.NET

Другие ресурсы

What's New in ASP.NET Caching