利用缓存来提升网站的性能(Caching to Improve the Performance of Your Website )

您能够提升您站点的访问速度,那么就须要用到cache(缓存),一般能够咱们使用cache来处理常常检索的结果或不常常改变的数据结果。 html

你将学习: web

l  如何使用缓存来提升网站的响应速度。 数据库

本章介绍的功能: 浏览器

l  WebCache helper 缓存

 

缓存来提升网站的响应 服务器

每当人们请求您站点中的页面时,Web服务器都会作一些工做,以便执行请求。对于其中一些包括有服务器端执行代码的页面,Web服务器可能会执行很长时间来完成任务。好比从数据库中检索数据。这些任务获取在较少数量的的请求时并不须要太长的时间,可是若是网上有了大量的流量,全部用户都进行了独立请求的时候,会致使Web服务器增长不少的工做,从而使执行速度变的缓慢。这最终会影响到网站的性能。 app

 

在这种状况下,改善您网站性能的方法之一即是缓存数据。若是您的网站上有在请求时响应的是相同数,且数据并不须要针对我的进行改变,另外在时间上也并不敏感。那么咱们能够将数据缓存,在用户每次请求时并不在Web服务器上从新计算,而是在第一次访问时就将数据放到缓存中,在下一次请求时,只获取缓存中的数据。 asp.net

 

在通常状况下,您缓存的信息并不常常改变。当你把信息放到缓存,它将存储在Web服务器上的内存中。你能够指定它应该被缓存多久,从几秒钟到几天。当缓存期限到期,该信息自动从缓存中删除。 ide

 

注意    缓存中的项目并无过时,但可能会由于其余缘由可能会被删除。例如,Web服务器可能暂时低位运行内存,它回收内存的方法之一即是移出缓存项。正如你看到的,即便你放入缓存信息,你必须检查,以确保它在您使用时仍然存在。 性能

 

想象您的网站有一个页面,显示当前的温度和天气预报。为了获得这种类型的信息,您可能会发送一个请求到外部服务。由于这个信息并不须要有太大的改变(例如,在两个小时内)由于和外部请求服务须要时间和带宽,因此这是一个很好的被缓存项目。

 

ASP.NET包括WebCache helper,使得您很容易地将缓存功能添加到网站,并添加到缓存中的数据。在此过程当中,您将建立一个页面用来缓存的当前的时间。固然这不是一个真实的例子,由于当前的时间是不常常改变,并且不须要复杂的计算。然而,这是一个很好的方式来讲明缓存在工做。

1.         添加一个新页面网站名为WebCache.cshtml

2.         在页面中添加如下代码和标记:

@{
   
var cacheItemKey = "Time";
   
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 例子</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>
       
页面上的时间被组成存为: @time.
    </
div>
</body>
</
html>

 

cacheItemKey代码示例中,使用time定义了一个缓存项,当您缓存数据时,须要为缓存定义一个名称,在整个网站中,这个缓存是独立存在的。

 

该代码首先读取time缓存项中的值,若是返回值不为空,说明代码从缓存项目中获取了time缓存,并保存到变量time中。

 

然而,若是缓存条目不存在(也就是说,它是空的),代码会设置time的值为当前时间,将它添加到缓存中,并设置一分钟的到期时限。若是页面请求没有在一分钟以内进行,那么缓存中的项目将被丢弃。(默认缓存项到期时间是20分钟)。

 

此代码说明的问题是您应该老是使用时缓存数据。在您获得的新的缓存以前,老是先检查WebCache.Get方法是否返回null值。请记住,缓存条目可能由于其余一些缘由已过时或可能已被删除,因此历来不能保证任何给定的项目在缓存一直存在。

 

3.         在浏览器中运行WebCache.cshtml。(请确保页面在选定的工做区中,而后再运行它。)当您第一次请求页面时,时间数据不在缓存中,代码将添加时间值到缓存中。


4.         在浏览器中刷新WebCache.cshtml。这一次,时间数据是从缓存中获取的。请注意你最后一次浏览网页以来的时间一直没有改变。


5.         等待一分钟后缓存被清空,而后刷新页面。再次代表时间数据在缓存中没有找到,更新的时间将被添加到缓存项中。

 

原文:

http://www.asp.net/web-pages/tutorials/performance-and-traffic/15-caching-to-improve-the-performance-of-your-website

资源:

7 - 显示图表中的数据

相关文章
相关标签/搜索