ASP.NET数据库缓存浅析

开发 后端
ASP.NET数据库缓存是什么?ASP.NET数据库缓存的特点又是什么呢?那么本文就向你介绍这方面的情况。

ASP.NET数据库缓存是什么呢?首先我们来认识一下ASP.NET数据库缓存浅析,为了创建可扩展、高性能的基于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文件,***的数据项副本被再一次插入缓存中。进一步的,回调事件处理器可被设定为一个监听者,当缓存项被删除时得到通知。这使得我们不需要反复轮询缓存来确定数据项是否已无效。

Oracle数据库上的ASP.NET缓存依赖

现在考虑这样一个情景:数据存放于Oracle数据库中,一个ASP.NET应用通过ADO.NET来访问。进一步,我们假设数据库表中的数据一般是静态的,并被这个Web应用频繁访问。表上的DML操作很少而对数据有很多Select。这种情况是数据缓存技术的理想应用。但不幸的是,ASP.NET并不允许设定一个缓存项依赖于存放在数据库表中的数据。进一步,现实世界中,基于Web的系统,Web服务器和Oracle数据库服务器总是会运行在不同的机器上,使得缓存无效操作更有挑战性。另外,多数基于Web的应用采用Web farms,同一个应用的实例在不同的Web服务器上跑以负载均衡。这种情况使得数据库缓存问题稍稍复杂一些。

ASP.NET数据库缓存的基本情况就向你介绍到这里,希望对你了解ASP.NET数据库缓存有所帮助。

【编辑推荐】

  1. ASP.NET项目开发中应用程序异常处理浅析
  2. ASP.NET项目开发中常见异常处理及web.config配置浅析
  3. ASP.NET项目开发中健康监视浅析
  4. ASP.NET缓存概念及其应用浅析
  5. ASP.NET缓存分析和实践浅析
责任编辑:仲衡 来源: IT专家网
相关推荐

2009-07-28 17:36:21

ASP.NET数据库连

2009-08-03 18:35:51

ASP.NET数据缓存

2009-07-29 09:12:31

ASP.NET数据库连

2009-07-27 17:58:10

ASP.NET数据库编

2009-07-29 09:33:14

ASP.NET数据库连

2009-07-31 09:47:57

ASP.NET缓存

2009-08-05 09:38:28

SQL Server数

2009-07-31 09:32:04

ASP.NET缓存概念ASP.NET缓存应用

2009-10-10 10:44:15

ASP.NET页面缓存

2009-07-24 11:35:08

2009-02-23 15:20:03

SQL Server数据库ASP.NET

2009-07-31 12:43:59

ASP.NET MVC

2009-08-05 15:50:13

ASP.NET优点

2009-07-24 13:41:15

ASP.NET AJA

2009-08-05 18:36:12

ASP.NET Che

2009-08-03 18:47:12

ASP.NET数据缓存

2010-08-06 08:50:21

ASP.NET

2009-08-10 13:32:15

ASP.NET TimASP.NET组件设计

2009-07-31 10:23:44

缓存页面ASP.NET缓存

2009-08-04 15:20:59

ASP.NET数据验证数据验证控件
点赞
收藏

51CTO技术栈公众号