系统缓存解析

系统缓存有什么好处呢?举个简单的例子,你想经过网页查询某些数据,而这些数据并不是实时变化,或者变化的时间是有期限的。例如查询一些历史数据。那 么每一个用户每次查的数据都是同样的。若是不设置缓存,ASP.NET也会根据每一个用户的请求重复查询n次,这就增长了没必要要的开销。因此,可能的状况下尽 量使用缓存,从内存中返回数据的速度始终比去数据库查的速度快,于是能够大大提供应用程序的性能。毕竟如今内存很是便宜,用空间换取时间效率应该是很是划 算的。尤为是对耗时比较长的、须要创建网络连接的数据库查询操做等。数据库

缓存功能是大型网站设计一个很重要的部分。由数据库驱动的Web应用程序,若是须要改善其性能,最好的方法是使用缓存功能。浏览器

 

系统缓存全解析1:系统缓存的概述缓存

系统缓存全解析2:页面输出缓存服务器

系统缓存全解析3:页面局部缓存网络

系统缓存全解析4:应用程序数据缓存分布式

系统缓存全解析5:文件缓存依赖性能

系统缓存全解析6:数据库缓存依赖网站

系统缓存全解析7:第三方分布式缓存解决方案 Memcached和Cachemanspa

系统缓存全解析1:系统缓存的概述

 

15.4.1     缓存的分类设计

     从分布上来看,咱们能够归纳为客户端缓存和服务器端缓存。如图所示:


客户端缓存—— 这点你们都有直观的印象。好比你去一个新的网站,第一次可能要花一阵子时间才能载入整个页面。而之后再去呢,时间就会大大的缩短,缘由就在于这个客户端缓 存。如今的浏览器都比较智能,它会在客户机器的硬盘上保留许多静态的文件,好比各类gif,jpeg文件等等。等之后再去的时候,它会尽可能使用本地缓存里 面的文件。只有服务器端的文件更新了,或是缓存里面的文件过时了,它才会再次从服务器端下载这些东西。不少时候是IE替咱们作了这件事情。

 

服务器端缓存—— 有些东西无法或是不宜在客户端缓存,那么咱们只好在服务器端想一想办法了。服务器端缓存从性质上看,又能够分为两种。

(1)静态文件缓存

    好多页面是静态的,不多改动,那么这种文件最适于做静态缓存。如今的IIS 6.0这部份内容是直接存放在Kernel的内存中,由HTTP.SYS直接管理。因为它在Kernel Space,因此它的性能很是的高。用户的请求若是在缓存里面,那么HTTP.SYS直接将内容发送到networkdriver上去,不须要像之前那样 从IIS的User space的内存copy到Kernel中,而后再发送到TCP/IP stack上。Kernellevel cache几乎是如今高性能Web server的一个必不可少的特性。

(2)动态缓存

     动态缓存是比较有难度的。由于你在缓存的时候要时刻注意一个问题,那就是缓存的内容是否是已通过时了。由于内容过期了可能会有很严重的后果。好比网上股市的网站。你给别人提供的价格是过期的,那人家非砍了你不可。缓存如何发现本身是否是过期就是一个很是复杂的问题。

 

    在ASP.NET中,常见的动态缓存主要有如下几种手段:

  Ø  传统缓存方式

  Ø  页面输出缓存。

  Ø  页面局部缓存。

  Ø  利用.NET提供的System.Web.Caching 缓存。

  Ø  缓存依赖。

15.4.2  传统缓存方式

好比将可重复利用的东西放到Application或是Session中去保存。

 Session["Style"] = val; Application["Count"] =0;

相关文章
相关标签/搜索