【转】系统缓存全解析一

具体请看:(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

原文地址:https://www.cnblogs.com/sishierfei/p/2590504.html