📜  ASP.NET WP-缓存

📅  最后修改于: 2020-11-21 05:35:26             🧑  作者: Mango


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

  • 在某些情况下,如果您的站点流量很大,则导致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);
   }
}



   
   
      WebCache Helper Sample
   
   
   
      
@if (cacheHit){ @:Found the time data in the cache. } else { @:Did not find the time data in the cache. }
This page was cached at @time.
  • 正如您在上面的代码中看到的那样,当我们缓存数据时,我们将使用在整个网站上唯一的名称将其放入缓存中。在这种情况下,我们将使用一个名为CachedTime的缓存条目。这是cacheItemKey

  • 该代码首先读取CachedTime缓存条目。如果返回一个值,则代码仅将time变量的值设置为缓存数据。

  • 但是,如果缓存条目不存在,则代码会设置时间值,将其添加到缓存中,并将过期值设置为一分钟。

  • WebCache.Set(cacheItemKey,time,1,false)显示如何将当前时间值添加到缓存并将其到期时间设置为1分钟。

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

Web缓存

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

WebCache助手