【转】系统缓存全解析一
具体请看:(http://msdn.microsoft.com/zh-cn/library/aa478965.aspx)
1,数据库过程缓存(执行计划缓存):缓存sql脚本的执行计划+缓存sql脚本的执行上下文(包含:执行人,所影响的数据库和表,执行结果集合)
2,数据库缓存依赖(web服务端对数据库的数据进行缓存与监听)
3,web服务器缓存:(缓存web服务器端的一些页面或页面的部分内容)
(1),静态文件缓存
好多页面是静态的,很少改动,那么这种文件最适于作静态缓存。现在的IIS
6.0这部分内容是直接存放在Kernel的内存中,由HTTP.SYS直接管理。由于它在Kernel
Space,所以它的性能非常的高。用户的请求如果在缓存里面,那么HTTP.SYS直接将内容发送到network
driver上去,不需要像以前那样从IIS的User space的内存copy到Kernel中,然后再发送到TCP/IP stack上。Kernel level
cache几乎是现在高性能Web server的一个必不可少的特性。
(2)动态缓存
动态缓存是比较有难度的。因为你在缓存的时候要时刻注意一个问题,那就是缓存的内容是不是已经过时了。因为内容过时了可能会有很严重的后果。比如网上买卖股票的网站。你给别人提供的价格是过时的,那人家非砍了你不可。缓存如何发现自己是不是过时就是一个非常复杂的问题。
在ASP.NET中,常见的动态缓存主要有以下几种手段:
Ø 传统缓存方式
Ø 页面输出缓存。
Ø 页面局部缓存。
Ø 利用.NET提供的System.Web.Caching
文件缓存依赖与数据(如果不要求数据的实时性,可以不使用缓存依赖项)依赖。
4,客户端浏览器缓存
5,CPU缓存 (一级缓存,二级缓存等等)
6,硬盘的虚拟内存(这个也暂且算作缓存吧)
引用地址:http://hi.baidu.com/jiangyangw3r/item/17a96e16d303f13eb831806c