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会自己处理并发。

posted on 2015-10-16 11:08 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/4884712.html

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

  1. ASP.NET Core 中做集成测试的三种方案

    学习·进步 老张的哲学 不定期更新的 日常 在平时的开发中,我们很少会关注到测试的问题,更别说集成测试了,除非是公司有硬性要求或者是自己的开源项目中,为了整体架构的完整性,需要用测试来做辅助点缀,而更 ...

  2. ASP.NET Core 中文文档 第三章 原理(5)错误处理

    原文:Error Handling 作者:Steve Smith 翻译:谢炀(Kiler) 校对:高嵩(jack2gs).何镇汐 当你的ASP.NET应用发生错误的时候, 你可以采用本文所述的各种方法 ...

  3. ASP.NET Core 中文文档 第三章 原理(3)静态文件处理

    原文:Working with Static Files 作者:Rick Anderson 翻译:刘怡(AlexLEWIS) 校对:谢炀(kiler398).许登洋(Seay).孟帅洋(书缘) 静态文 ...

  4. asp.net服务器端跳转页面的三种方法

    asp.net服务器端跳转页面的三种方法 1.Response.Redirect这个跳转页面的方法跳转速度不快,因为它要走2次回发(postback). 它可以跳转到任何页面,没有站点页面限制(可以由 ...

  5. centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法

    Linux系统中安装软件的三种方法 注:本文主要以CentOS为例介绍常用的安装方式,其他版本linux在文章底部 Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别: 1.文件位置 系 ...

  6. Android中夜间模式的三种实现方式

    参考:https://www.jianshu.com/p/f3aaed57fa15 在本篇文章中给出了三种实现日间/夜间模式切换的方案: 使用 setTheme 的方法让 Activity 重新设置主 ...

  7. 在JavaScript中重复字符串的三种方法

    In this article, I'll explain how to solve freeCodeCamp's "Repeat a string repeat a string" ...

  8. oracle if=,oracle中if/else的三种实现方式详解

    1.标准sql规范 1.单个IF IF v=... THEN END IF; 2.IF ... ELSE IF v=... THEN ELSE t....; END IF; 3.多个IF IF v=. ...

  9. Django中Model继承的三种方式

    Django中Model继承的三种方式 Django中Model的继承有三种: 1.抽象继承 2.多表继承 3.proxy model(代理model) 1.抽象继承 第一种抽象继承,创建一个通用父类 ...

最新文章

  1. 我是村里唯一的PM,哈哈哈…
  2. css圆在中心根据宽度缩放_根据CSS中的容器宽度重新缩放字体
  3. Eclipse 汉化包下载安装
  4. [USACO13NOV]Farmer John has no Large Brown Cow【状压 / 模拟】
  5. 多功能pdf编辑器PDF Office Max for mac
  6. 3PHP如何用PDO的连接方式方式导出mysql数据
  7. armv6 armv7 armv7s架构的区别
  8. 转载--柯尔莫哥洛夫
  9. 人员招聘与培训实务【1】
  10. “绿水青山就是金山银山”
  11. DSCP(Differentiated Service Codepoint,差分服务代码点)
  12. 脑起搏器治疗帕金森病的原理
  13. Y-Combinator
  14. 如何打通AD、企业微信、飞书、钉钉等社交账号及内外网应用身份?
  15. 利用python将单个Excel文件转换为PDF
  16. 洛谷P2056 采花
  17. BZOJ 4808 二分图最大独立集
  18. mysql只能导出65535条,Mysql报Rowsizetoolarge65535的原因及解决方法
  19. 三分钟构建自动化运维平台-nightingale(夜莺)
  20. Mac中解决CSV乱码问题

热门文章

  1. html事件中写js,html标签中绑定触发事件与js中绑定触发事件写法上的区别
  2. .NET也可以跨平台 Mono 2.10发布
  3. LeetCode简单题目(#225 #226 #231 #232 #234)-5道(栈、队列、树、数字)
  4. 调用存储过程时报错:Illegal mix of collations
  5. 2021-10-21 pgRouting
  6. docker镜像与容器操作流程
  7. 容器大小_C++复习篇(7)序列式容器vector
  8. 利用marked.js写个简单Markdown编辑器(1)
  9. Discuz3.2开启图片列表显示教程
  10. 分享用Adobe Air向iOS移植游戏的经验