c# 缓存

c# 的缓存 接触的应该有

Cache

SqlDependency

SqlCacheDependency

CacheDependency

AggregateCacheDependency

缓存 分为 客户端缓存 和服务器缓存

服务器缓存所需的数据已经有了.  不用再次查找(当然查找缓存也需要查找) (缓存在服务器中,可以缓存在内存中,也可以缓存在文件里,并且还可以进一步地区分为本地缓存和分布式缓存两种)

客户端缓存也就是数据在本地机器上存在了. 不需要从服务器获取数据

用过一些非人的手段,达到变态的要求. 提高响应速度.让数据 刚好的呈现.

1

System.Web.Caching命名空间内的类组成

缓存命名空间主要提供四个种操作:缓存数据对象、对象的缓存依赖和数据库的缓存依赖。其中缓存任何对象都使用一个类Cache,但当缓存发生改变时,普通对象和数据库对象的依赖处理不同。

 
Cache 对缓存对象的编辑类,其操作包括缓存的增、删、改  
CacheDependency 基本缓存对象的依赖,当基本对象发生变化时,更新缓存内容

    //假设缓存的来源文件是当前目录下的data.xml文件

    //缓存依赖的文件路径

    CacheDependency mydep = new CacheDependency("data.xml");

SqlCacheDependency 数据库缓存对象的依赖,当数据库中的数据变化时,更新缓存内容
(在以下两者之间建立关系:一是在 ASP.NET 应用程序的 Cache 对象中存储的项;二是特定 SQL Server 数据库表或 SQL Server 2005 查询的结果。)
页面是配置Web.config 配置, 和页面上配置缓存
AggregateCacheDependency 监视依赖项对象的集合,以便在任何依赖项对象更改时,该缓存项都会自动移除(组合 ASP.NET 应用程序的 Cache 对象中存储的项和 CacheDependency 对象的数组之间的多个依赖项。)

AggregateCacheDependency dependency = new AggregateCacheDependency();
            dependency.Add(new SqlCacheDependency("NHibernateSample", "Customer"
));
            dependency.Add(new CacheDependency(Server.MapPath("~/App_Data/XmlData.xml"
)));

  Cache.Insert("data", “sdfsdf”, dependency );
     

SqlDependency 类似于SqlCacheDependency  .也就是数据库发生变动 ,通知程序.

页面配置

<%@ OutputCache Duration="" VaryByParam="" VaryByControl="" VaryByHeader="" VaryByCustom="" CacheProfile="" Location="" %>

Duration:设置缓存到期时间,单位:秒。
VaryByParam:可用来使缓存输出因查询字符串而异,多个查询字符用分号隔开。
VaryByControl:可用来使缓存输出因控制值而异。
VaryByHeader:可用来使缓存输出因请求的 HTTP 标头而异。
VaryByCustom:可用来使缓存输出因浏览器类型或您定义的自定义字符串而异。
CacheProfile:结合配置文件使用。
Location:设置页的可缓存性,值有Any,Client,Downstream,None,Server,ServerAndClient。

原文地址:https://www.cnblogs.com/jiaofu2012/p/3499771.html