ASP.NET WP - 缓存


当有人从您的站点请求页面时,网络服务器必须执行一些工作才能满足该请求。因此,服务器可能必须执行需要很长时间的任务,例如从数据库检索数据。

  • 在某些情况下,如果您的网站遇到大量流量,则导致 Web 服务器执行复杂或缓慢任务的一系列单独请求可能会增加大量工作量。

  • 这最终会影响网站的性能。

  • 提高网站性能的一种方法是缓存数据。

  • 当您的网站收到对相同信息的重复请求时,并且该信息不需要针对每个人进行修改,并且对时间不敏感,因此您可以只获取一次数据,然后存储该数据,而不是重新获取或重新计算它结果。

  • 下次请求该信息时,您只需将其从缓存中取出即可。

如何缓存数据?

让我们看一个简单的示例,其中我们将在页面首次加载时缓存数据。因此,让我们创建一个名为WebCache.cshtml的新 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 分钟。

让我们运行应用程序并指定以下 url - http://localhost:50180/WebCache.cshtml,您将看到以下页面。

网页缓存

现在让我们在一分钟内刷新页面,您将看到相同的时间,这是因为时间是从缓存加载的。

网络缓存助手