asp.net(c#)从Cache对象删除项
2013-07-20 12:06
260 查看
asp.net(c#)从Cache对象删除项
ASP.NET Cache 对象设计用于保证它并不使用过多的服务器内存。结果是,当用内存变得缺乏时,Cache对象自动删除最少被使用的项。你可以通过定义时间限制、依赖项、以及项
在Cache对象中的优先级来影响 Cache对象保存和删除项的方式。
Cache对象中的项只要是依赖或时间限制被触发,就是立即被删除。试图获取被删除的项将返回null值,除非项再次被添加到 Cache对象中。
绝对期限
你可以使用 AbsoluteEXpiration 参数为项定义最大的绝对生存期。此参数是 DateTime 类型的参数,允许你指定项过期的时间。
我在下面的代码指定了从创建起5分钟后,myValue 从 Cache 对象中被删除:
Cache.Insert("myKey", myValue, null, DateTime.Now.AddMinutes(5), Cache.NoSlidingExpiration);
滑动期限
你可以通过使用 SlidingExpiration 参数为项定义最大的相对生存期。这是一个 TimeSpan 类型参数,允许你指定每个对象自从最后一次访问后的时间间隔以及何时对象到期。
我在下面的代码指定了 myValue 最后的访问的20分钟后被从 Cache对象中删除:
Cache.Insert("myKey", myValue, null, null, TimeSpan.FromSeconds(20));
依赖项
有时你想某对象从 Cache对象中被删除,因为支持的项,如文件已经改变。ASP.NET 允许你基于依赖项或另一个缓存的项来定义缓存项的合法性。基于外部文件和目录的依赖项被
称为文件依赖项,依赖于另一个缓存项的依赖项被称为键依赖项。如果依赖项改变,缓存的项被称为不合法,然后从Cache对象中删除。
我在下面的代码指定了当 myDoc.xml 文件更改时,myValue 从 Cache对象中删除:
Cache.Insert("myKey", myValue, new CacheDependency(Server.MapPath("myDoc.xml")));
缓存项优先级
当网络服务器运行的内存可用量降低时,Cache对象有选择地删除项以释放系统内存。你指定高一点优先级的项较低可能从缓存中被删除,而被指定为低一些优先级的项被删除的可能性就要大一些。
我在下列代码指定了 myValue 有高优先级,将成为当服务器内存被限制时,最后从 Cache对象删除的项之一:
Cache.Insert("myKey", myValue, null, null, Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
设置 Cache.Insert 中参数的示例
下列代码将一个 MyBook 的值使用许多参数插入到了 Cache对象中。下列首先发生的依赖项或超 时事件将使项被从 Cache对象中删除:
在保存5分钟后被删除。
在最后访问30秒钟后被删除。
在 Books.xml 文件更改后删除。
将项的优先级设置为高,从而如果服务器资源成为问题时最后被删除。
当项被从 Cache对象删除时,回调函数onRemove 运行。
Cache.Insert("MyBook.CurrentBook", CurrentBook, new CacheDependency(Server.MapPath("")), DateTime.Now.AddMinutes(5), TimeSpan.FromSeconds(30), CacheItemPriority.High, onRemove);
ASP.NET Cache 对象设计用于保证它并不使用过多的服务器内存。结果是,当用内存变得缺乏时,Cache对象自动删除最少被使用的项。你可以通过定义时间限制、依赖项、以及项
在Cache对象中的优先级来影响 Cache对象保存和删除项的方式。
Cache对象中的项只要是依赖或时间限制被触发,就是立即被删除。试图获取被删除的项将返回null值,除非项再次被添加到 Cache对象中。
绝对期限
你可以使用 AbsoluteEXpiration 参数为项定义最大的绝对生存期。此参数是 DateTime 类型的参数,允许你指定项过期的时间。
我在下面的代码指定了从创建起5分钟后,myValue 从 Cache 对象中被删除:
Cache.Insert("myKey", myValue, null, DateTime.Now.AddMinutes(5), Cache.NoSlidingExpiration);
滑动期限
你可以通过使用 SlidingExpiration 参数为项定义最大的相对生存期。这是一个 TimeSpan 类型参数,允许你指定每个对象自从最后一次访问后的时间间隔以及何时对象到期。
我在下面的代码指定了 myValue 最后的访问的20分钟后被从 Cache对象中删除:
Cache.Insert("myKey", myValue, null, null, TimeSpan.FromSeconds(20));
依赖项
有时你想某对象从 Cache对象中被删除,因为支持的项,如文件已经改变。ASP.NET 允许你基于依赖项或另一个缓存的项来定义缓存项的合法性。基于外部文件和目录的依赖项被
称为文件依赖项,依赖于另一个缓存项的依赖项被称为键依赖项。如果依赖项改变,缓存的项被称为不合法,然后从Cache对象中删除。
我在下面的代码指定了当 myDoc.xml 文件更改时,myValue 从 Cache对象中删除:
Cache.Insert("myKey", myValue, new CacheDependency(Server.MapPath("myDoc.xml")));
缓存项优先级
当网络服务器运行的内存可用量降低时,Cache对象有选择地删除项以释放系统内存。你指定高一点优先级的项较低可能从缓存中被删除,而被指定为低一些优先级的项被删除的可能性就要大一些。
我在下列代码指定了 myValue 有高优先级,将成为当服务器内存被限制时,最后从 Cache对象删除的项之一:
Cache.Insert("myKey", myValue, null, null, Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
设置 Cache.Insert 中参数的示例
下列代码将一个 MyBook 的值使用许多参数插入到了 Cache对象中。下列首先发生的依赖项或超 时事件将使项被从 Cache对象中删除:
在保存5分钟后被删除。
在最后访问30秒钟后被删除。
在 Books.xml 文件更改后删除。
将项的优先级设置为高,从而如果服务器资源成为问题时最后被删除。
当项被从 Cache对象删除时,回调函数onRemove 运行。
Cache.Insert("MyBook.CurrentBook", CurrentBook, new CacheDependency(Server.MapPath("")), DateTime.Now.AddMinutes(5), TimeSpan.FromSeconds(30), CacheItemPriority.High, onRemove);
相关文章推荐
- asp.net(c#)从Cache对象删除项(学习日记二)
- asp.net(c#)从Cache对象删除项
- asp.net(c#)缓存Cache对象(学习日记一)
- 温故知新ASP.NET 2.0(C#)(4) - Cache&SqlCacheDependency(缓存和SqlCacheDependency特性)
- C# Asp.net使用FormData对象实现ajax提交表单及上传图片
- C#语法糖之 cache操作类 asp.net
- ASP.NET中在线用户统计 application和cache实现缓存的差异 ASP.net 验证码(C#)
- 温故知新ASP.NET 2.0(C#)(4) - Cache&SqlCacheDependency(缓存和SqlCacheDependency特性)
- Asp.net 2.0 中 Cache 丢失的问题:“值不能为空”或“未将对象引用设置到对象的实例”
- asp.net(C#)html无限分类树 可新增 删除 修改
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- asp.net C#对xml文档创建 修改 删除 查找
- ASP和C#.NET实现IIS6添加和删除站点主机头
- C# Asp.Net Cookie正确删除方法
- C# ASP.net 跨域Cookies的删除
- 批量删除ASP.NET中的缓存(cache)
- Asp.net(C#)对文件操作的方法(读取,删除,批量拷贝,删除...)
- Asp.Net[C#] 使用GridView 分页,编辑,删除,导出XML完整页面
- Asp.net(c#)常用文件操作类封装 移动 复制 删除 上传 下载等
- 很不错的asp.net文件上传类c# 搜索文件 移动文件 删除文件等