程序员人生 网站导航

.NET中的缓存技术概览

栏目:互联网时间:2014-12-13 09:09:25

从散布上来看,我们可以概括为客户端缓存和服务器端缓存,以下图所示:


客户端缓存    这点大家都有直观的印象。比如你去1个新的网站,第1次可能要花1阵子时间才能载入全部页面。而以后再去呢,时间就会大大的缩短,缘由就在于这个客户端缓存。现在的阅读器都比较智能,它会在客户机器的硬盘上保存许多静态的文件,比如各种gif,jpg文件等等。等以后再去的时候,它会尽可能使用本地缓存里面的文件。只有服务器真个文件更新了,或是缓存里面的文件过期了,它才会从服务器端下载这些东西。很多时候是IE替我们做了这些事情。


服务器端缓存    有些东西没法或是不宜在客户端缓存,那末我们只好在服务器端想一想办法了。服务器端缓存从性质上看,又可以分为两种。

静态文件缓存    好多页面时静态的,很少改动,那末这类文件最适于做静态缓存。现在的IIS6.0这部份内容是直接寄存在kernel的内存中,由HTTP.SYS直接收理。由于它在Kernel Space,所以它的性能非常的高。用户的要求如果在缓存里面,那末HTTP.SYS直接将内容发送到netword driver上去,不需要像之前那样从IIS的User space的内存copy到Kernel中,然后再发送到TCP/IP stack上。Kernel level cache几近是现在高性能Web server的1个必不可少的特性。

动态缓存    动态缓存是比较有难度的。由于你在缓存的时候要时刻注意1个问题,那就是缓存的内容是否是已过时了。由于内容过时了可能会有很严重的后果。

在Asp.net中,常见的动态缓存主要有以下几种手段:

传统缓存方式

页面输出缓存

页面局部缓存

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

缓存依赖


接下来的博文将以.net mvc框架为例介绍各种缓存方式

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐