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

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

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

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


protected void btn_InsertNoExpirationCache_Click(object sender, EventArgs e)   
{   
    DataSet ds = GetData();   
    Cache.Insert("Data", ds);   
}   
protected void btn_InsertAbsoluteExpirationCache_Click(object sender, EventArgs e)   
{   
    DataSet ds = GetData();   
    Cache.Insert("Data", ds,null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);   
}   
protected void btn_InsertSlidingExpirationCache_Click(object sender, EventArgs e)   
{   
    DataSet ds = GetData();   
    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会自己处理并发。

时间: 2024-08-30 02:26:55

ASP.NET缓存中Cache过期的三种策略的相关文章

Asp.net Mvc2中重构View的三种方式

我们在Asp.net mvc的view开发过程中,如果不注意可能会写大量的重复的代 码.这篇文章介绍3种方式重构View的代码,来减少View中的重复代码. 1.母板页 在Asp.net mvc中保留了母板页的使用,我们可以使用母板页对我们的站点进 行布局.看下面母板页的代码: <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> <!DOCTYPE html PU

asp.net程序中最常用的三十三种编程代码

asp.net|编程|程序 asp.net程序中最常用的三十三种编程代码,为初学者多多积累经验,为高手们归纳总结,看了觉得很有价值~,大家不妨参考下!  1. 打开新的窗口并传送参数:   传送参数:  response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>") 

WPF中实现PropertyGrid的三种方式

由于WPF中没有提供PropertyGrid控件,有些业务需要此类的控件.这篇文章 介绍在WPF中实现PropertyGrid的三种方式,三种方式都是俺平时使用时总结出 来的. 第一种方式:使用WindowsForm的PropertyGrid控件. 用过WPF的童鞋都晓得,可以通过WindowsFormsHost将WindowsForm的控件宿 主到WPF中使用.很简单,分为简单的3步. 第一步:引用dll:在WPF应用程序中引入System.Windows.Forms.dll. 第二步:引用命

excel表格中隔行选取的三种方法

  excel表格中隔行选取的三种方法          有一个excel表格,需要隔N行选取.可能是隔一行,也可能是隔2行.3行. 常见的隔行选取有两种方法: 一.按ctrl键不松用鼠标逐行选取.如果需要选取的行数多,会累死人的. 二.在辅助设置公式或输入字符 - 设置筛选模式 - 筛选 - 选取 - 取消筛选模式.如果是隔列选取,这种方法就不能用了. 除了以上两种外,本文小编新发现一种新的隔行选取方法,估计绝大部分同学都没见过. 步骤1:在H3中输入公式 =A3:F3,再选取H2:H3向下复

实现PPT中局部虚化效果的三种方法

实现PPT中局部虚化效果的三种方法   下面请看实现PPT中局部虚化效果的三种方法 方法一.图片复制两份,选择图片,在格式中选择虚化,具体方法如下图所示. 方法二.用美图秀秀打开图片,在美化里面选择"背景虚化",具体方法如下图所示. 方法三.理论上讲与上面两个是重叠的,但分开将更容易理解,具体操作方法见下图. 局部虚化效果如下图所示.

JavaScript中定义函数的三种方法

 这篇文章主要介绍了JavaScript中定义函数的三种方法,本文直接给出代码实现,同时给出了构造函数的相关知识,需要的朋友可以参考下     在JavaScript的世界里,定义函数的方法多种多样,这正是JavaScript灵活性的体现,但是正是这个原因让初学者摸不着头脑,尤其对于没有 语言基础的同学.正所谓条条大道通罗马,但是如果道路太多,会让行路者不知所措,因为不知道走那条路才是正途,呵呵,废话一大篇,闲言少叙,先看代码: 代码如下: /*第一种方法,使用function语句,格式如下*/

Android中使用定时器的三种方法_Android

本文实例为大家分享了Android中使用定时器的三种方法,供大家参考,具体内容如下 图示: 因为都比较简单,所以就直接贴代码(虑去再次点击停止的操作),有个全局的Handler负责接收消息更新UI 第一种方法:Thread.sleep();方法 Runnable runnable = new Runnable() { @Override public void run() { while (true) { mHandler.sendEmptyMessage(0); try { Thread.sl

C#在Winform中改变Textbox高度三种方法

原文 C#在Winform中改变Textbox高度三种方法 最近在做C# Winform项目,需要有一个能动态调整大小的Textbox,并且要是单行的.试了几次,单行模式的Textbox不能直接改高度.于是搜索了一下,整理出几个改变高度的方法. 1.将Textbox改为多行模式,设置MutliLine属性为True,然后屏蔽Enter键. private void txtTest_KeyDown (object sender, KeyEventArgs e) { if ((int)e.KeyCo

Word文档在方框中打勾的三种方法

文档在方框中打勾的三种方法-word文档中方框内打勾"> 方法一 点击"插入→符号→其他符号",打开"符号"窗口,在"子集"处选中"数学运算符",然后选中"√",点击"插入"按钮即可.再选中"√",在"开始"菜单中"字体"中点击"带圈字符○字"工具,打开带圈字符窗口,选择"□&quo