Enterprise Library Step By Step系列(十) 缓冲应用程序块

一.基于时间的过期策略

基于时间的过期策略,支持两种相对时间和绝对时间。

1.绝对时间(Absolute):

允许您定义一个缓冲项的生命周期,我们可以指定一个单一的时间作为过期,或者通过表达式来设置。

指定单一的时间作为过期:

1/**////读取数据
2      Database db = DatabaseFactory.CreateDatabase("Database Instance");
3      DataSet ds = db.ExecuteDataSet(CommandType.Text,"Select * from Products");
4
5      /**////创建CacheManager
6      IsolatedCacheManager = CacheFactory.GetCacheManager("Isolated Cache Manager");
7
8      /**////创建一个单一的时间
9      DateTime refreshTime = new DateTime(2005, 11, 12, 12, 51, 30);
10
11      /**////指定为绝对过期时间
12      AbsoluteTime expireTime = new AbsoluteTime(refreshTime);
13
14      /**////添加缓冲项,优先级为Normal
15      IsolatedCacheManager.Add("MyDataSet",ds, CacheItemPriority.Normal, null,expireTime);

用表达式来设置:

表达式的格式:<Minute> <Hour> <Day of month> <Month> <Day of week>

例子:

“* * * * *”    expires every minute

“5 * * * *”    expire 5th minute of every hour

“* 21 * * *”   expire every minute of the 21st hour of every day

“31 15 * * *”  expire 3:31 PM every day

“7 4 * * 6”    expire Saturday 4:07 AM

“15 21 4 7 *” expire 9:15 PM on 4 July

1/**////读取数据
2      Database db = DatabaseFactory.CreateDatabase("Database Instance");
3      DataSet ds = db.ExecuteDataSet(CommandType.Text,"Select * from Products");
4
5      /**////创建CacheManager
6      IsolatedCacheManager = CacheFactory.GetCacheManager("Isolated Cache Manager");
7
8      /**////创建基于表达式
9      ExtendedFormatTime expireTime = new ExtendedFormatTime("0 0 * * 6");
10
11      /**////添加缓冲项,优先级为Normal,过期时间
12      IsolatedCacheManager.Add("Key1", "Cache Item1", CacheItemPriority.Normal,null, expireTime);

2.变化的时间:

允许您定义针对条目的被调用的两次之间的间隔,定义条目的生命周期

1/**////读取数据
2      Database db = DatabaseFactory.CreateDatabase("Database Instance");
3      DataSet ds = db.ExecuteDataSet(CommandType.Text,"Select * from Products");
4
5      /**////创建CacheManager
6      IsolatedCacheManager = CacheFactory.GetCacheManager("Isolated Cache Manager");
7
8      /**////访问5分钟后过期,变化的时间
9      TimeSpan refreshTime = new TimeSpan(0, 5, 0);
10      SlidingTime expireTime = new SlidingTime(refreshTime);
11
12      /**////添加缓冲项
13      IsolatedCacheManager.Add("Key1", "Cache Item1", CacheItemPriority.Normal,null, expireTime);

时间: 2024-08-03 08:46:34

Enterprise Library Step By Step系列(十) 缓冲应用程序块的相关文章

Enterprise Library 4.1学习笔记1----配置应用程序块(c/s和b/s均适用)

园子里TerryLee的Enterprise Library系列文章回顾与总结 http://www.cnblogs.com/Terrylee/archive/2006/08/01/464591.html已经写得很全面了,不过不是针对4.1版,一边看这一系列的文章学习,一边在4.1上摸索,准备写几篇学习笔记,今天先来认识Configuration Application Block(配置应用程序块) 参照TerryLee的文章,在4.1上怎么也找不到Configuration Applicati

Enterprise Library 4.1学习笔记3----安全应用程序块

打开\EntLib41Src\Quick Starts\Security\CS 先用aspnet_regsql.exe配置一个membership/role的基本数据库,然后修改下config文件中的连接字符串 运行后会发现界面上有一段文字 Note: Much of the functionality demonstated by this QuickStart was implemented in previous versions of Enterprise Library, but th

Enterprise Library 4.1学习笔记5----实体验证程序块

实体验证的作用简单来讲,就是从服务端对数据进行验证.(特别是对数据安全性要求比较高的应用,这是十分必要的) 废话不说了,直接讲下使用步骤:(因为我是做web开发的,主要是讲解asp.net环境中的使用) 1.先添加Microsoft.Practices.EnterpriseLibrary.Validation.dll的引用 2.最基本的使用方法(也是我最不喜欢的一种方式),直接在实体类上通过添加特性实现 实体类如下: public class Person{            [String

Enterprise Library 4.1学习笔记4----缓存应用程序块

缓存是个啥?以及为啥要用缓存就不废话了,主要是从实用角度讲下怎么用 1.先添加对Microsoft.Practices.EnterpriseLibrary.Caching.dll的引用 2.修改web.config文件,注意高度部分 <configSections>    ...    <section name="cachingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Cachin

Enterprise Library 4.1学习笔记8----缓存应用程序块之FileDependency

写入缓存数据时如果使用了FileDependency方式,最终的效果会让缓存是否过期依赖于某一个具体的文件,只要这个文件没有修改,缓存一直 有效,反之如果这个文件被修改过了,则缓存立即过期. 个人认为,这种方式特别适合一些极少修改的数据(比如系统中的数据字典),而且相对用绝对时间(或是时间周期)让缓存过期,更能减轻数据 库压力,毕竟如果用时间做判断,时间点一到,就得重新从数据库里查询数据(不管数据有没有被修改). 应用场合:某些基础数据几乎极少修改,可能一个月还改不到一回,这时我们可以考虑Fil

Enterprise Library 4.1学习笔记6----加密应用程序块

学习这一块内容前,先得大概知道"哈希算法"和"对称加密算法"是咋回事儿. 不清楚的先去这里充电5分钟再回来 哈希算法------http://baike.baidu.com/view/273836.htm 对称加密算法--http://baike.baidu.com/view/7591.htm 使用步骤: 1.先添加Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.dll的引用 2.参照http:

Enterprise Library Step By Step系列(十四)

Enterprise Library Step By Step系列(十四):创建基于消息队列(MSMQ)的异步日志 一.概述 在Enterprise Library Step By Step系列里我们说过,日志和检测应用程序块主要由2部分组成:Client和Distributor.Client负责创建消息,这些消息将由Distributor写入目标位置.Client根据分发策略(Distribution Strategies)发送消息到Distributor,在Application Block

Enterprise Library Step By Step系列(九) 缓冲应用程序块

写在前面:企业库Step By Step系列的随笔今天已经是第九篇了,期间得到了很多朋友的支持,他们认为给初学者提供了很好的资料,在这里表示衷心的感谢.也有朋友反映说关于企业库使用的文章网上已经有了很多,希望我能写一些企业库类设计的文章,我也非常感谢这些朋友提出的建议.我写本系列随笔时就是立足于初学者,帮助初学者,希望能够给他们一些帮助.所以本系列随笔我还会继续下去,写完入门篇和进阶篇后,我会写类设计篇,最后我计划再写一篇总结篇的随笔,作为对企业库的一个总结,最后再次谢谢大家的关注和支持. 一.

Enterprise Library Step By Step系列(十六) 使用AppSetting Application B

概述 AppSetting Application Block并不是企业库里面的一个应用程序块.它可以使我们运用企业库的配置工具来管理类似于appSetting这样的配置文件中的标记,像我们经常用到的数据库连接字符串. 安装 1.在.NET环境下编译AppSetting解决方案: 2.拷贝如下两个DLL到Enterprise Library \bin 目录下 下载地址:/upimg/soft/1101/4-11012Q13330.rar Kokuti.EnterpriseLibrary.AppS

Enterprise Library Step By Step系列(十二)异常处理应用程序块

一.把异常信息Logging到数据库 在日志和监测应用程序块中,有朋友提意见说希望能够把异常信息Logging到数据库中,在这里介绍一下具体的实现方法. 1.创建相关的数据库环境: 我们可以用日志和监测应用程序块自带的SQL语句来创建相关的数据库环境: 创建数据库: CREATE DATABASE [Logging] ON (NAME = N'Logging', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\Loggi