Учебники

ASP.NET WP — Кэширование

Когда кто-то запрашивает страницу с вашего сайта, веб-сервер должен выполнить некоторую работу, чтобы выполнить запрос. Таким образом, серверу может потребоваться выполнить задачи, которые займут много времени, например, получение данных из базы данных.

  • В некоторых случаях, если ваш сайт испытывает большой трафик, целый ряд отдельных запросов, которые заставляют веб-сервер выполнять сложную или медленную задачу, может сложить много работы.

  • Это может в конечном итоге повлиять на производительность сайта.

  • Одним из способов повышения производительности вашего сайта является кеширование данных.

  • Когда ваш сайт получает повторные запросы на одну и ту же информацию, и информация не нуждается в изменении для каждого человека, и это не чувствительно ко времени, поэтому вместо повторного извлечения или пересчета вы можете получить данные один раз, а затем сохранить Результаты.

  • В следующий раз, когда поступит запрос на эту информацию, вы просто получите его из кэша.

В некоторых случаях, если ваш сайт испытывает большой трафик, целый ряд отдельных запросов, которые заставляют веб-сервер выполнять сложную или медленную задачу, может сложить много работы.

Это может в конечном итоге повлиять на производительность сайта.

Одним из способов повышения производительности вашего сайта является кеширование данных.

Когда ваш сайт получает повторные запросы на одну и ту же информацию, и информация не нуждается в изменении для каждого человека, и это не чувствительно ко времени, поэтому вместо повторного извлечения или пересчета вы можете получить данные один раз, а затем сохранить Результаты.

В следующий раз, когда поступит запрос на эту информацию, вы просто получите его из кэша.

Как кэшировать данные?

Давайте рассмотрим простой пример, в котором мы будем кэшировать данные при первой загрузке страницы. Итак, давайте создадим новый файл CSHTML с именем WebCache.cshtml и заменим следующий код.

@{
   var cacheItemKey = "CachedTime";
   var cacheHit = true;
   var time = WebCache.Get(cacheItemKey);
   
   if (time == null){
      cacheHit = false;
   }
   
   if (cacheHit == false){
      time = @DateTime.Now;
      WebCache.Set(cacheItemKey, time, 1, false);
   }
}

<!DOCTYPE html>
<html>
   
   <head>
      <title>WebCache Helper Sample</title>
   </head>
   
   <body>
      <div>
         @if (cacheHit){
            @:Found the time data in the cache.
         } else {
            @:Did not find the time data in the cache.
         }
      </div>
      
      <div>
         This page was cached at @time.
      </div>
   
   </body>
</html>
  • Как видно из приведенного выше кода, когда мы кешируем данные, мы помещаем их в кеш, используя уникальное имя для всего сайта. В этом случае мы будем использовать запись кэша с именем CachedTime . Это cacheItemKey .

  • Сначала код читает запись кэша CachedTime. Если значение возвращается, код просто устанавливает значение переменной времени для данных кэша.

  • Но если запись в кэше не существует, код устанавливает значение времени, добавляет его в кэш и устанавливает значение срока действия в одну минуту.

  • WebCache.Set (cacheItemKey, time, 1, false) показывает, как добавить текущее значение времени в кэш и установить срок его действия на 1 минуту.

Как видно из приведенного выше кода, когда мы кешируем данные, мы помещаем их в кеш, используя уникальное имя для всего сайта. В этом случае мы будем использовать запись кэша с именем CachedTime . Это cacheItemKey .

Сначала код читает запись кэша CachedTime. Если значение возвращается, код просто устанавливает значение переменной времени для данных кэша.

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

WebCache.Set (cacheItemKey, time, 1, false) показывает, как добавить текущее значение времени в кэш и установить срок его действия на 1 минуту.

Запустим приложение и укажем следующий URL — http: // localhost: 50180 / WebCache.cshtml, и вы увидите следующую страницу.

Веб-кеш

Теперь давайте обновим вашу страницу в течение минуты, и вы увидите то же самое время, потому что время загружается из кэша.