.net System.Web.Caching.Cache缓存类使用详解(转载)
转自:http://www.cnblogs.com/virusswb/articles/1681561.html
net System.Web.Caching.Cache缓存类使用详解
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 中。
[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缓存类使用详解(转载)相关推荐
- .Net内部缓存System.Web.Caching.Cache 和Redis缓存缓存工厂切换
有个问题,以前系统采用的是System.Web.Caching.Cache 但是redis缓存的流行 分布式的流行,缓存就被切换了. 但是在redis缓存的环境需要配置,有时候要切换回来. 这时候就弄 ...
- Himall商城缓存缓存到本地System.Web.Caching.Cache
#region 缓存到本地System.Web.Caching.Cache /// <summary> /// 缓存到本地System.Web.Caching.Cache ...
- System.Web.Caching.Cache类 缓存 各种缓存依赖
原文:System.Web.Caching.Cache类 缓存 各种缓存依赖 Cache类,是一个用于缓存常用信息的类.HttpRuntime.Cache以及HttpContext.Current.C ...
- System.Web.Caching.Cache
System.Web.Caching 命名空间提供用于缓存服务器上常用数据的类.这包括 Cache 类,该类是一个使您可以存储任意数据对象(如哈希表和数据集)的词典.它还为这些对象提供 ...
- 关于System.Web.Caching的“未将对象引用设置到对象的实例”错误
初接触Asp.Net不久,想在后端做个缓存机制,于是使用了System.Web.Caching的Cache类. 使用部分的逻辑很简单,但是取值时总报错 private static Cache cac ...
- System.Web.Caching
缓存主要是为了提高数据的读取速度.因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高程序的性能. 本章从缓存 ...
- OkHttp原理第五篇-Cache缓存类详解
✨作者简介:00后,22年刚刚毕业,一枚在鹅厂搬砖的程序员. ✨前置任务:本篇是CacheInterceptor的补充文章,重点讲解OkHttp的缓存类,读者最好也了解下,虽然不太影响后续文章的阅读, ...
- (117)System Verilog类继承详解
(117)System Verilog类继承详解 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog类继承详解 5)结语 1.2 FPGA ...
- (116)System Verilog类合成(类包含关系)详解
(116)System Verilog类合成(类包含关系)详解 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog类合成(类包含关系)详解 ...
最新文章
- 欢迎参加2022年第一次《城市大脑建设标准规范》专家研讨会
- $(MAKE) -C $(KERNELDIR) M=`pwd` modules
- 用Python机器学习搞定验证码
- oracle backup arch,一个数据库备份的例子
- .net MVC 简单图片上传
- 关于SimpleDateFormat时间格式化线程安全问题
- Android 实践项目开发二
- SP2010开发和VS2010专家食谱--第七章节--使用客户端对象模型(2)--Handling exceptions...
- ubuntu 开启ssh
- PageRank与社交网络模型评估
- 编程之美2.2 不要被阶乘吓到
- python普通滑块验证码破解初级版
- IE 提示 当前安全设置不允许下载该文件
- 论文解读GNNs Exponentially Lose Expressive Power For Node Classification
- nodeJS 第一篇
- Spring Boot 学习之路 使用JPA对Girl 操作
- 使用Microsoft SQL Server Management Studio连接远程阿里云SQL Server数据库
- FPGA实现信号n倍插值(内插0)
- 蒸妙集团,中医熏蒸是养生治疗合一体
- 数据库--02--数据模型--层次模型.网状模型.关系模型
热门文章
- 陌陌股价过山车背后隐藏了什么?
- sql中varchar(n),nvarchar(n) 长度性能及所占空间分析
- win7 + vs2013 + zlib 编译
- zabbix之通过jmx监控tomcat
- 为什么世界上一些最好的科学家和程序员,在世人眼里,都有点不太正常,甚至行为混乱...
- 《JavaScript快速全栈开发》作者Azat Mardanov:现在是拥抱Node技术栈的最佳时机
- 比特币现金仍然是一个比较好的投资
- C# 实现FTP上传与下载
- 操作系统 地址 概念
- Linux常用命令--echo