ASP.NET надає програмні можливості, які фактично кешують інформацію в ASP.NET додатку. Функціональність схожа на об'єкт Application, але має можливість динамічно підтримувати кешовану інформацію протягом усього життя ASP.NET додатка. Кешування даних у додатку може значно підвищити продуктивність, оскільки дані є локальними для сервера і можуть бути швидко отримані. Замість того, щоб повторювати запити до оригінального джерела даних. Особливо найбільшим вузьким місцем поточної системи є база даних, і раціональне використання кешу дозволяє зменшити багато зайвого доступу до бази даних, щоб оптимізувати продуктивність системи.
Об'єкти кешу покращують можливість реалізації сповіщень про термін дії та зворотного виклику на основі релевантності, що дозволяє виконувати дії з кешованими елементами кешу іншим користувачам керуючого додатку або самим ASP.NET. Використовуйте об'єкт Cache для збереження будь-якого типу (значення або типу додатка) перед оновленням або видаленням. Кеш є більш гнучким об'єктом, ніж об'єкт Application. Вона підтримує:
1. Термін дії та видалення на основі релевантності — об'єкти кешу дозволяють автоматично прив'язувати термін дії та видалення значень кешу з подією файлу, конкретною або відносною датою/часом або іншим ключем кешу.
2. Автоматичне управління блокуванням — Об'єкти кешу включають внутрішнє управління блокуванням, яке забезпечує синхронізацію для атомарних оновлень (оновлень, які можна розмістити під час обчислювальної операції).
3. Механізм зворотного виклику — Об'єкт кешу надає можливість встановити функцію зворотного виклику для виклику при видаленні елементів кешу.
Метод додавання кешу включає Add() або Insert(), а метод Insert може використовувати опціональні параметри для додавання кешу, застосовуючи обидва стандартні параметри:
Cache.Add(KeyName, KeyValue,Dependencies,AbsoluteExpiration,SleasingExpiration,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));
Копія коду
|