ASP.NET项目开发指南:缓存API-使用Cache对象
缓存API:使用Cache对象
使用Cache对象 可以存储任何可序列化的数据对象 基于一个或多个依赖项的组合来控制缓存条目到期的方式 这些依赖项可以包括自从某对象被缓存后经过的时间 自从某对象上次被访问后经过的时间 对文件或文件夹的更改以及对其他缓存对象的更改 在略作处理后还可以包括对数据库中特定表的更改
在Cache中存储数据的最简单的方法就是使用一个键为其赋值 就像HashTable或Dictionary对象一样
Cache[ key ] = value ;
这种做法将在缓存中存储项 同时不带任何依赖项 因此它不会到期 除非缓存引擎为了给其他缓存数据提供空间而将其删除 要包括特定的缓存依赖项 可使用Add()或Insert()方法 其中每个方法都有几个重载 Add()和Insert()之间的唯一区别是 Add()返回对已缓存对象的引用 而Insert()没有返回值
Cache Insert( key myXMLFileData new System
Web Caching CacheDependency(Server MapPath( users xml )))
该示例可将文件中的XML数据插入缓存 无须在以后请求时从文件读取 CacheDependency的作用是确保缓存在文件更改后立即到期 以便可以从文件中提取最新数据 重新进行缓存 如果缓存的数据来自若干个文件 还可以指定一个文件名的数组
Cache Insert( dependentkey myDependentData
new System Web Caching CacheDependency(new
string[] {} new string[] { key }))
该示例可插入键值为key的第二个数据块(取决于是否存在第一个数据块) 如果缓存中不存在名为key的键 或者如果与该键相关联的对象已到期或被更新 则dependentkey的缓存条目将到期
Cache Insert( key myTimeSensitiveData
null DateTime Now AddMinutes( ) TimeSpan Zero)
绝对到期 此示例将对受时间影响的数据缓存一分钟 一分钟过后 缓存将到期
Cache Insert( key myFrequentlyAccessedData
null System Web Caching Cache NoAbsoluteExpiration
TimeSpan FromMinutes( ))
动态滚动到期 此示例将缓存一些频繁使用的数据 数据将在缓存中一直保留下去 除非数据未被引用的时间达到了一分钟
注意 动态滚动到期和绝对到期不能一起使用
总之 缓存可以使应用程序的性能得到很大的提高 因此在设计应用程序以及对应用程序进行性能测试时应该予以考虑 应用程序总会或多或少地受益于缓存 当然有些应用程序比其他应用程序更适合使用缓存 深刻理解ASP NET提供的缓存选项对于任何ASP NET开发人员来说都至关重要
返回目录 ASP NET项目开发指南
编辑推荐
ASP NET MVC 框架揭秘
ASP NET开发宝典
lishixinzhi/Article/program/net/201311/15811