.net System.Web.Caching.Cache 缓存类使用详解
2011-11-10 13:32
190 查看
System.Web.Caching 命名空间提供用于缓存服务器上常用数据的类。这包括 Cache 类,该类是一个使您可以存储任意数据对象(如哈希表和数据集)的词典。它还为这些对象提供到期功能,并提供使您可以添加和移除对象的方法。您还可以添加依赖于其他文件或缓存项的对象,并在从
Cache 中移除对象时执行回调以通知应用程序。
System.Web.Caching.Cache 用于实现 Web 应用程序的缓存。
对于每个应用程序域均创建该类的一个实例,并且只要对应的应用程序域保持活动,该实例便保持有效。有关此类实例的信息通过
HttpContext 对象的 Cache 属性或
Page 对象的 Cache 属性来提供。
方法:
Add
将指定项添加到 Cache 对象,该对象具有依赖项、过期和优先级策略以及一个委托(可用于在从
Cache 移除插入项时通知应用程序)。如果 Cache 中已保存了具有相同
key 参数的项,则对此方法的调用将失败。若要使用相同的
key 参数改写现有的 Cache 项,请使用
Insert 方法.
Insert
向 Cache 对象插入项。使用此方法的某一版本改写具有相同 key 参数的现有
Cache 项。
Remove
从应用程序的 Cache 对象移除指定项。
Item / Get
提供通过Name找到Value的方法
-----------------------------------------------------------------------------------------------------------------------------------------------
一下是从微软网上MSDN找到的一篇有关Cache的说明, 内容差不多,但是要更加具体一些:
您可以使用三种不同的技术将项添加到 Cache 对象中。根据应用程序要求的不同,您的选择可以从简单到复杂。
如果要利用 Cache 所提供的清理、到期时间和依赖项支持,则必须使用 Cache.Insert 方法或 Cache.Add 方法。
注意 Add 和 Insert 方法具有相同的签名,但它们之间存在细微的差别。首先,调用
Add 方法返回表示缓存项的对象,而调用 Insert 方法不是。其次,如果您调用这些方法并将已存储在
Cache 中的某个项添加到 Cache 中,那么它们的行为是不同的。Insert 方法替换该项,而
Add 方法失败。
通过指定其键和值将项添加到缓存中
通过指定项的键和值,您可以像将项添加到字典中一样将其添加到缓存中。下面的代码将文本框的当前 Value 属性添加到
Cache 中。
通过使用 Insert 方法将项添加到缓存中
重载 Insert 方法,允许您定义正在使用的版本的参数的值。例如,若要只添加项的键和值,则使用下面的代码。
使用 Add 方法将项添加到缓存中
Add 方法与 Insert 方法具有相同的签名,但它返回表示您所添加项的对象。
这两种方法都使您能够在很大程度上控制在 Cache 中保留项的条件。两种方法都支持使缓存的项依赖于外部文件或目录、Cache 中的其他键或任意一个的数组。将设有依赖项的项添加到
Cache 中将创建 CacheDependency 类的实例,它跟踪对您定义的依赖项的更改。如果这些依赖项的任何一个发生更改(包括被删除或移动),则将与该依赖项关联的项从
Cache 中移除。
将设有依赖项的项添加到缓存中
您可以使用 Add 或 Insert 方法中的 dependencies 参数将设有依赖项的项添加到
Cache 中。下面的示例演示使用 Insert 方法将设有依赖项(在 XML 文件上)的项添加到
Cache 中。
将设有到期策略的项添加到缓存中
您可以使用 absoluteExpiration parameter 参数和 slidingExpiration 参数将设有到期策略的项添加到
Cache 中。您可以定义绝对过期时间或弹性过期时间,但不能同时定义两者。在使用上述参数之一定义到期策略时,必须将另一个参数设置为零。Cache 类定义了两个自动执行该操作的字段:NoAbsoluteExpiration 和
NoSlidingExpiration。当定义绝对或弹性过期时间时,只要将适当的参数设置为其相应的字段值即可。下面的示例使用
Insert 方法将设有两分钟绝对到期时间的项添加到 Cache 中。
下面的代码使用 Insert 方法将设有 30 秒弹性过期时间的项添加到 Cache 中。
注意 当设置绝对到期时间时,请使用 DateTime 结构。当设置弹性过期时间时,请使用 TimeSpan 结构。另外,如果您创建的弹性过期时间小于零或大于一年,则将引发 ArgumentOutOfRangeException 类。
您还可以使用 Add 或 Insert 方法通过在 CacheItemPriority 枚举中指定值定义缓存项的相对重要性。当 Web 服务器进行清理以释放内存时,这些相对优先级会对它有所帮助。Web 服务器会在移除具有较高优先级的项之前先从
Cache 中移除具有较低优先级的项。
将设有优先级设置的项添加到缓存中
您可以通过在 Add 或 Insert 方法上使用 priority 参数将设有优先级设置的项添加到
Cache 中。下面的示例使用 Add 方法将 priority 为
High 的项添加到 Cache 中。
这些方法还允许在项从缓存中移除时,使用 CacheItemRemovedCallback 委托通知应用程序。有关完整的示例,请参见从缓存中删除项时通知应用程序。
Cache 中移除对象时执行回调以通知应用程序。
System.Web.Caching.Cache 用于实现 Web 应用程序的缓存。
对于每个应用程序域均创建该类的一个实例,并且只要对应的应用程序域保持活动,该实例便保持有效。有关此类实例的信息通过
HttpContext 对象的 Cache 属性或
Page 对象的 Cache 属性来提供。
方法:
Add
将指定项添加到 Cache 对象,该对象具有依赖项、过期和优先级策略以及一个委托(可用于在从
Cache 移除插入项时通知应用程序)。如果 Cache 中已保存了具有相同
key 参数的项,则对此方法的调用将失败。若要使用相同的
key 参数改写现有的 Cache 项,请使用
Insert 方法.
Insert
向 Cache 对象插入项。使用此方法的某一版本改写具有相同 key 参数的现有
Cache 项。
Remove
从应用程序的 Cache 对象移除指定项。
Item / Get
提供通过Name找到Value的方法
-----------------------------------------------------------------------------------------------------------------------------------------------
一下是从微软网上MSDN找到的一篇有关Cache的说明, 内容差不多,但是要更加具体一些:
您可以使用三种不同的技术将项添加到 Cache 对象中。根据应用程序要求的不同,您的选择可以从简单到复杂。
如果要利用 Cache 所提供的清理、到期时间和依赖项支持,则必须使用 Cache.Insert 方法或 Cache.Add 方法。
注意 Add 和 Insert 方法具有相同的签名,但它们之间存在细微的差别。首先,调用
Add 方法返回表示缓存项的对象,而调用 Insert 方法不是。其次,如果您调用这些方法并将已存储在
Cache 中的某个项添加到 Cache 中,那么它们的行为是不同的。Insert 方法替换该项,而
Add 方法失败。
通过指定其键和值将项添加到缓存中
通过指定项的键和值,您可以像将项添加到字典中一样将其添加到缓存中。下面的代码将文本框的当前 Value 属性添加到
Cache 中。
[Visual Basic] Cache("txt1") = txtName.value [C#] Cache["txt1"] = txtName.value;
通过使用 Insert 方法将项添加到缓存中
重载 Insert 方法,允许您定义正在使用的版本的参数的值。例如,若要只添加项的键和值,则使用下面的代码。
[Visual Basic] Cache.Insert("MyData1", connectionString) [C#] Cache.Insert("MyData1", connectionString);
使用 Add 方法将项添加到缓存中
Add 方法与 Insert 方法具有相同的签名,但它返回表示您所添加项的对象。
[Visual Basic] Cache.Add("MyData1", connectionString) [C#] Cache.Add("MyData1", connectionString);
这两种方法都使您能够在很大程度上控制在 Cache 中保留项的条件。两种方法都支持使缓存的项依赖于外部文件或目录、Cache 中的其他键或任意一个的数组。将设有依赖项的项添加到
Cache 中将创建 CacheDependency 类的实例,它跟踪对您定义的依赖项的更改。如果这些依赖项的任何一个发生更改(包括被删除或移动),则将与该依赖项关联的项从
Cache 中移除。
将设有依赖项的项添加到缓存中
您可以使用 Add 或 Insert 方法中的 dependencies 参数将设有依赖项的项添加到
Cache 中。下面的示例演示使用 Insert 方法将设有依赖项(在 XML 文件上)的项添加到
Cache 中。
[C#] Cache.Insert("MyData1", connectionString, new CacheDependency(Server.MapPath(\\myServer\myConfig.xml))); [Visual Basic] Cache.Insert("MyData1", connectionString, new CacheDependency(Server.MapPath(\\myServer\myConfig.xml)))
将设有到期策略的项添加到缓存中
您可以使用 absoluteExpiration parameter 参数和 slidingExpiration 参数将设有到期策略的项添加到
Cache 中。您可以定义绝对过期时间或弹性过期时间,但不能同时定义两者。在使用上述参数之一定义到期策略时,必须将另一个参数设置为零。Cache 类定义了两个自动执行该操作的字段:NoAbsoluteExpiration 和
NoSlidingExpiration。当定义绝对或弹性过期时间时,只要将适当的参数设置为其相应的字段值即可。下面的示例使用
Insert 方法将设有两分钟绝对到期时间的项添加到 Cache 中。
[C#] Cache.Insert("MyData1", connectionString, null, DateTime.Now.AddMinutes(2), NoSlidingExpiration); [Visual Basic] Cache.Insert("MyData1", connectionString, null, DateTime.Now.AddMinutes(2), NoSlidingExpiration)
下面的代码使用 Insert 方法将设有 30 秒弹性过期时间的项添加到 Cache 中。
[C#] Cache.Insert("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30)); [Visual Basic] Cache.Insert("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30))
注意 当设置绝对到期时间时,请使用 DateTime 结构。当设置弹性过期时间时,请使用 TimeSpan 结构。另外,如果您创建的弹性过期时间小于零或大于一年,则将引发 ArgumentOutOfRangeException 类。
您还可以使用 Add 或 Insert 方法通过在 CacheItemPriority 枚举中指定值定义缓存项的相对重要性。当 Web 服务器进行清理以释放内存时,这些相对优先级会对它有所帮助。Web 服务器会在移除具有较高优先级的项之前先从
Cache 中移除具有较低优先级的项。
将设有优先级设置的项添加到缓存中
您可以通过在 Add 或 Insert 方法上使用 priority 参数将设有优先级设置的项添加到
Cache 中。下面的示例使用 Add 方法将 priority 为
High 的项添加到 Cache 中。
[C#] Cache.Add("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30), CacheItemPriority.High, null); [Visual Basic] Cache.Add("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30), CacheItemPriority.High, null)
这些方法还允许在项从缓存中移除时,使用 CacheItemRemovedCallback 委托通知应用程序。有关完整的示例,请参见从缓存中删除项时通知应用程序。
相关文章推荐
- .Net内部缓存System.Web.Caching.Cache 和Redis缓存缓存工厂切换
- asp.net 数据缓存System.Web.Caching.Cache 实例运用
- System.Web.Caching.Cache Web 缓存的使用
- 使用System.Net.WebClient上传文件
- (asp.net MVC学习)System.Web.Mvc.HtmlHelper学习及使用
- 第一节:从程序集的角度分析System.Web.Caching.Cache ,并完成基本封装。
- HttpWebRequest 下载网页Html代码 POST方式(站内使用了form方式) System.Net.WebException (417) Expectation failed
- ASP.NET组件System.Web.Optimization原理及缓存问题详解
- 学习和分享一点简单的System.Web.HttpRuntime.Cache的使用经验
- Android 使用webview 提示 net:ERR_CACHE_MISS错误
- System.Web.Caching.Cache
- ASP.NET 使用 System.Web.Script.Serialization 解析 JSON (转)
- .net System.Web.Caching.Cache缓存类使用详解(转载)
- 学习和分享一点简单的System.Web.HttpRuntime.Cache的使用经验
- .net 1.1 下不使用 system.web.mail.smtpmail 发送邮件的其它选择_asp.net技巧
- asp.net web中GridView的多种使用方法(详解)
- (.Net 3.5Sp1)WebForm使用System.Web.Routing
- .net System.IO之Stream的使用详解
- asp.net web 开发登录相关操作的控件LoginName、LoginStatus和LoginView控件使用详解
- ASP.NET Web API Caching with CacheCow and CacheOutput