Asp.net高速缓存

本文详细介绍了ASP.NET中的缓存技术,包括页面输出缓存的全页面缓存和部分页面缓存,以及数据高速缓存。页面输出缓存通过OutputCache指令实现,分为整个页面缓存和部分页面缓存,部分页面缓存可通过用户控件或缓存后替换实现。数据缓存利用Cache对象,可以设置依赖项以自动更新缓存。还探讨了文件依赖和SqlCacheDependency的使用,提供了一种提升Web应用程序性能的有效途径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缓存分三种:

1、页面输出缓存

2、数据缓存

3、缓存依赖

  高速缓存概述:

通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时来创建的数据存储在内存中,从而提高性能。

高速缓存的处理方式

页面输出缓存

整个页面输出缓存

部分页面输出缓存

数据高速缓存

 

一、页面输出缓存 

页输出缓存对于那些不经常更改,但需要大量处理才能创建的页特别有用。

整个页面缓存:将页的全部内容保存在内存中,并用于完成客户端请求。

部分页面缓存:允许缓存页的部分内容,其他部分则为动态内容。

部分页缓存可采用两种工作方式:控件缓存和缓存后替换。 

1、页面输出缓存——整个页面缓存 

要应用输出高速缓存,在页面中插入一个OutputCache页面指令。  

属性

说明

Duration

页或用户控件进行缓存的时间(以秒计)。

Location

输出缓存的位置。

VaryByParam

指定哪些QueryString参数会高速缓存页面的新版本

PageCache_Test1.aspx 

PageCache_Test2.aspx PageCache_Test3.aspx

 

21页面输出缓存——部分页面缓存(用户控件缓存)

方式一

创建用户控件

aspx页面中插入一个OutputCache页面指令

OutputCache中使用VaryByControl属性指向用户控件

方式二

创建用户控件

在用户控件中插入一个OutputCache页面指令

设置OutputCache属性,其中Share属性确定用户控件输出是否可以由多个页共享。

PageCache_Test4.aspx   UC_Country.ascx

PageCache_Test5.aspx   PageCache_Test6.aspx   UC_Country1.ascx   (share属性的作用)

 

22页面输出缓存——部分页面缓存(缓存后替换

缓存后替换与控件缓存正好相反。它对页进行缓存,但是页中的某些片段是动态的,因此不会缓存这些片段。

Substitution控件:指定输出缓存网页上免于缓存的部分

Substitution 控件执行时,会调用一个返回字符串的方法。该方法返回的字符串即为要在页中的 Substitution 控件的位置上显示的内容。

使用 MethodName 属性指定方法的名称。方法要求是静态方法,且方法的参数是HttpContext类型的

PageCatch_Test7.aspx

 

3、数据缓存

Cache:用于 Web 应用程序的缓存。

属性

说明

Count

获取存储在缓存中的项数。

 

方法

说明

Add

将指定项添加到 Cache 对象。

Get

Cache 对象检索指定项。

Insert

Cache 对象插入项。

Remove

Cache 对象移除指定项。

DataCache_Test1.aspx

DataCache_Test2.aspx

 

数据缓存——Cache.Add方法

public Object Add(string key, Object value, CacheDependency dependencies, DateTime absoluteExpiration,

     TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback

)

参数

说明

key

value

dependencies

缓存依赖项

absoluteExpiration

绝对过期时间;如果使用可调过期,则 absoluteExpiration 参数必须为 NoAbsoluteExpiration

slidingExpiration

可调过期时间;如果使用绝对过期,则 slidingExpiration 参数必须为 NoSlidingExpiration

priority

缓存的优先级

onRemoveCallback

在从缓存中移除对象时所调用的委托,也可为null值。

 

过期类型

说明

可调过期

指定某项自上次被访问后多长时间过期。例如,可以将某项设置为自上次在缓存中被访问后 20 分钟过期。

绝对过期

指定某项在设定的时间过期,而不考虑访问频率。

 

DataCache_Test3.aspx

 

4、数据缓存——缓存依赖

可以将缓存中某一项的生存期配置为依赖于其他应用程序元素,如某个文件或数据库。

依赖项

说明

键依赖项

应用程序缓存中的项存储在键/值对中。键依赖项允许项依赖于应用程序缓存中另一项的键。如果移除了原始项,则具有键依赖关系的项也会被移除。

文件依赖项

缓存中的项依赖于外部文件。如果该文件被修改或删除,则缓存项也会被移除。

SQL 依赖项

缓存中的项依赖于 SQL Server数据库中表的更改。

聚合依赖项

通过使用 AggregateCacheDependency 类缓存中的项依赖于多个元素。如果任何依赖项发生更改,该项都会从缓存中移除。

自定义依赖项

可以用您自己的代码创建的依赖关系来配置缓存中的项。例如,可以创建一个自定义Web 服务缓存依赖项,当调用 Web 服务得到一个特定值时,该依赖项就会从缓存中移除数据。

DataCache_Test4.aspx (文件依赖)

 

缓存依赖——Sql依赖

®       注册:打开Visual Studio命令窗口  > 执行Aspnet_regsql.exe > 执行向导完成注册

®       配置:在web.config中进行配置。

®       使用SqlCacheDependency创建缓存依赖。

<system.web>

<caching>

      <sqlCacheDependency enabled = "true"  >

        <databases>

          <add name="dbAspNetApp"            connectionStringName="dbAspNetAppConnectionString1"            />

        </databases>

      </sqlCacheDependency>

    </caching>

  </system.web>

 

DataCache_Test5.aspx

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值