为了创建可扩展、高性能的基于web的应用,asp.net提供一个称为数据缓存(data caching)的特性。数据缓存支持将频繁访问的数据对象可编程地存放在内存中。这一特性可扩展以广泛地提高查询oracle数据库中数据的asp.net应用的性能。本文讲述一个策略,可用于采用web farm环境中的asp.net web应用缓存oracle数据库数据。这个技巧允许在内存中缓存频繁访问的oracle数据库数据,而不是频繁访问数据库来取数据。这可以帮助避免到oracle数据库服务器的不必要的远路。进一步的,文章提出了一个保持缓存数据以使其始终与oracle数据同步的实现。
asp.net中的数据缓存
asp.net中的数据缓存由cache类和system.web.caching命名空间中的cachedependency类支持。cache类提供向缓存插入和从中取出数据的方法。cachedependency类允许为缓存中数据项的指定其依赖项。当我们用insert和add方法将项目加入缓存中,可以指定一个项目的过期(expiration)策略。我们可以用insert方法的absoluteexpiration属性来定义缓存中一个项目的生命期。这个属性允许你指定相应数据项过期的准确时间。也可以使用slidingexpiration属性来指定项目过期的流逝时间(基于它被访问的时间)。一旦一个项目过期,它从缓存中被清除。除非它再次被加入缓存中,否则再试图访问,将返回一个空值。
设定缓存依赖
asp.net使我们可以基于一个外部文件、目录或另一个缓存项来定义一个缓存项的依赖,即所谓文件依赖与键依赖。若一个依赖项改变,缓存项自动失效并被从缓存中清除。当相应的数据源改变时,我们可以用这种方法来从缓存中删除项目。例如,若我们的应用从一个xml文件中取数据并显示在一个表格(grid)中,我们可以把文件中的数据存放到缓存中,并设定缓存依赖于那个xml文件。当xml文件被更新,数据项就从缓存中被清除出去。这一事件发生时,应用重新读入xml文件,最新的数据项副本被再一次插入缓存中。进一步的,回调事件处理器可被设定为一个监听者,当缓存项被删除时得到通知。这使得我们不需要反复轮询缓存来确定数据项是否已无效。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器