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

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

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

AD: 51CTO云计算架构师峰会 抢票进行中!

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

  1. <asp:ButtonID="btn_InsertNoExpirationCache"runat="server"Text="插入永不过期缓存"
  2. OnClick="btn_InsertNoExpirationCache_Click"/>
  3. <asp:ButtonID="btn_InsertAbsoluteExpirationCache"runat="server"Text="插入绝对时间
  4. 过期缓存" OnClick="btn_InsertAbsoluteExpirationCache_Click"/>
  5. <asp:ButtonID="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));
  15. }

我们来分析一下这三种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会自己处理并发。

posted @ 2012-09-26 15:44  Peter_youny  阅读(1957)  评论(0编辑  收藏  举报