ASP.NET缓存中Cache过期的三种策略

开发 后端
本文将谈谈如何学习ASP.NET缓存中的Cache应用,包括不同的过期策略添加缓存,希望本文能给大家一些帮助和启发。

我们在页面上添加三个按钮并双击按钮创建事件处理方法,三个按钮使用不同的过期策略添加ASP.NET缓存。

  1. <asp:Button ID="btn_InsertNoExpirationCache" runat="server" Text="插入永不过期缓存"   
  2. OnClick="btn_InsertNoExpirationCache_Click" /> 
  3. <asp:Button ID="btn_InsertAbsoluteExpirationCache" runat="server" Text="插入绝对时间  
  4. 过期缓存" OnClick="btn_InsertAbsoluteExpirationCache_Click" /> 
  5. <asp:Button ID="btn_InsertSlidingExpirationCache" runat="server" Text="插入变化时间  
  6. 过期缓存" OnClick="btn_InsertSlidingExpirationCache_Click" /> 

三个按钮的Click事件处理方法如下:

  1. protected void btn_InsertNoExpirationCache_Click(object sender, EventArgs e)  
  2. {  
  3.     DataSet ds = GetData();  
  4.     Cache.Insert("Data", ds);  
  5. }  
  6. protected void btn_InsertAbsoluteExpirationCache_Click(object sender, EventArgs e)  
  7. {  
  8.     DataSet ds = GetData();  
  9.     Cache.Insert("Data", ds,null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);  
  10. }  
  11. protected void btn_InsertSlidingExpirationCache_Click(object sender, EventArgs e)  
  12. {  
  13.     DataSet ds = GetData();  
  14.     Cache.Insert("Data", ds, null, DateTime.MaxValue, TimeSpan.FromSeconds(10));  

我们来分析一下这三种ASP.NET缓存过期策略。

◆永不过期。直接赋值缓存的Key和Value即可

◆绝对时间过期。DateTime.Now.AddSeconds(10)表示缓存在10秒后过期,TimeSpan.Zero表示不使用平滑过期策略。

◆变化时间过期(平滑过期)。DateTime.MaxValue表示不使用绝对时间过期策略,TimeSpan.FromSeconds(10)表示缓存连续10秒没有访问就过期。

在这里,我们都使用了Insert()方法来添加缓存。其实,Cache还有一个Add()方法也能向缓存中添加项。不同之处在于Add()方法只能添加缓存中没有的项,如果添加缓存中已有的项将失败(但不会抛出异常),而Insert()方法能覆盖原来的项。

注意:和Application不同,这里不需要使用在插入ASP.NET缓存的时候进行锁操作,Cache会自己处理并发。

【编辑推荐】

  1. ASP.NET运行环境搭建浅析
  2. ASP.NET学习之ASP.NET概述
  3. ASP.NET优点的十一方面浅析
  4. ASP.NET数据库连接池设置浅析
  5. 如何学习ASP.NET之九步宝典
责任编辑:彭凡 来源: cnblogs
相关推荐

2009-08-03 17:41:20

ASP.NET Cac

2009-08-17 17:36:57

ASP.NET缓存数据

2013-05-31 10:36:56

ASP.net文件上传

2009-07-31 10:23:44

缓存页面ASP.NET缓存

2009-07-20 15:39:32

ASP.NET缓存

2024-03-15 11:35:11

配置文件应用程序开发

2009-08-05 15:13:32

使用Cache提高AS

2009-07-22 18:02:26

ASP.NET Ses

2009-07-29 15:34:13

2009-07-29 10:35:51

ASP.NET缓存

2012-07-03 13:55:00

ASP.NET

2009-07-31 10:33:54

ASP.NET页面输出

2009-07-29 14:35:34

页面输出缓存ASP.NET

2009-08-04 15:22:33

ASP.NET缓存机制

2009-07-30 08:49:58

ASP.NET中usi

2009-11-09 08:53:21

ASP.NET缓存

2009-08-03 18:35:51

ASP.NET数据缓存

2009-08-17 16:59:36

ASP.NET缓存机制

2009-05-11 13:48:00

ASP.NET 2.0缓存效率

2009-08-03 18:47:12

ASP.NET数据缓存
点赞
收藏

51CTO技术栈公众号