1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using DBHelper;
  8. using System.Data;
  9. using MySql.Data.MySqlClient;
  10. using System.Web.Caching;
  11.  
  12. public partial class 缓存过期 : System.Web.UI.Page
  13. {
  14. static bool itemremove = false;
  15. static CacheItemRemovedReason reson;
  16. CacheItemRemovedCallback onremove = null;
  17.  
  18. public void removeCallback(string k, object v, CacheItemRemovedReason r) {
  19.  
  20. itemremove = true;
  21. reson = r;
  22. }
  23. protected void Page_Load(object sender, EventArgs e)
  24. {
  25. DataSet ds = (DataSet)Cache["students"];
  26. if (ds == null) {
  27. ds = GetStudent();
  28. onremove=new CacheItemRemovedCallback(this.removeCallback);
  29. CacheDependency cd=new CacheDependency(Server.MapPath("web.config"));
  30. Cache.Insert("students", ds, cd, Cache.NoAbsoluteExpiration, TimeSpan.FromHours(1), CacheItemPriority.High, onremove);
  31.  
  32. }
  33. GridView1.DataSource = ds;
  34. GridView1.DataBind();
  35. }
  36. protected void Button1_Click(object sender, EventArgs e)
  37. {
  38. if (Cache["students"] != null) {
  39. Cache.Remove("students");
  40.  
  41. }
  42. if (itemremove)
  43. {
  44.  
  45. Label1.Text += "REmove触发";
  46. Label1.Text += "<br>";
  47. Label1.Text += reson.ToString();
  48. }
  49. else {
  50. Label1.Text += Server.HtmlEncode(Cache["students"] as string);
  51.  
  52. }
  53. }
  54.  
  55. public static void SetCache(string CacheKey, object objObject, System.Web.Caching.CacheDependency dep)
  56. {
  57. System.Web.Caching.Cache objCache = HttpRuntime.Cache;
  58. objCache.Insert(
  59. CacheKey,
  60. objObject,
  61. dep,
  62. System.Web.Caching.Cache.NoAbsoluteExpiration, //从不过期
  63. System.Web.Caching.Cache.NoSlidingExpiration, //禁用可调过期
  64. System.Web.Caching.CacheItemPriority.Default,
  65. null);
  66. }
  67.  
  68. public static object GetCache(string CacheKey)
  69. {
  70. System.Web.Caching.Cache objCache = HttpRuntime.Cache;
  71. return objCache[CacheKey];
  72. }
  73.  
  74. public DataSet GetStudent()
  75. {
  76. string sql = "select * from t_student";
  77. return SqlHelper.ExecuteDataSetText(sql);
  78. }
  79.  
  80. }

  

.net 之缓存的更多相关文章

  1. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  2. 哪种缓存效果高?开源一个简单的缓存组件j2cache

    背景 现在的web系统已经越来越多的应用缓存技术,而且缓存技术确实是能实足的增强系统性能的.我在项目中也开始接触一些缓存的需求. 开始简单的就用jvm(java托管内存)来做缓存,这样对于单个应用服务 ...

  3. ASP.NET Core 中间件之压缩、缓存

    前言 今天给大家介绍一下在 ASP.NET Core 日常开发中用的比较多的两个中间件,它们都是出自于微软的 ASP.NET 团队,他们分别是 Microsoft.AspNetCore.Respons ...

  4. ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

    背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...

  5. [Java 缓存] Java Cache之 DCache的简单应用.

    前言 上次总结了下本地缓存Guava Cache的简单应用, 这次来继续说下项目中使用的DCache的简单使用. 这里分为几部分进行总结, 1)DCache介绍; 2)DCache配置及使用; 3)使 ...

  6. [原创]mybatis中整合ehcache缓存框架的使用

    mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...

  7. 探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存)

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  8. 深究标准IO的缓存

    前言 在最近看了APUE的标准IO部分之后感觉对标准IO的缓存太模糊,没有搞明白,APUE中关于缓存的部分一笔带过,没有深究缓存的实现原理,这样一本被吹上天的书为什么不讲透彻呢?今天早上爬起来赶紧找了 ...

  9. 缓存工厂之Redis缓存

    这几天没有按照计划分享技术博文,主要是去医院了,这里一想到在医院经历的种种,我真的有话要说:医院里的医务人员曾经被吹捧为美丽+和蔼+可亲的天使,在经受5天左右相互接触后不得不让感慨:遇见的有些人员在挂 ...

  10. .net 分布式架构之分布式缓存中间件

    开源git地址: http://git.oschina.net/chejiangyi/XXF.BaseService.DistributedCache 分布式缓存中间件  方便实现缓存的分布式,集群, ...

随机推荐

  1. 【java基础学习】IO流

    IO流 字节流InputStream和OutputStream 字符流Writer和Reader 装饰模式

  2. VC中对文件的读写

    http://www.cnblogs.com/LJWJL/archive/2012/10/06/2712466.html 注意: 1.由于C是缓冲写 所以要在关闭或刷新后才能看到文件内容 2.电脑处理 ...

  3. RSA+DES动态加密

    RSA可以用于加密,其加密强度很高,被人攻克的可能性极小.但是其加密速度很慢,如果对一段长数据进行加密是不现实的.因为无论加密还是解密都需要很长时间.所以通常是先用对称加密算法(DES, AES等)对 ...

  4. Scala的trait

    一:说明 1.介绍 2.功能 二:具体解释功能 1.定义接口 2.定义方法 3.定义字段 4.定义抽象字段 5.混合trait

  5. .net资源链接

    http://aspalliance.com/ http://www.hotscripts.com/ http://www.dotnet247.com http://stackoverflow.com ...

  6. android 生命周期

    引入android生命周期概念来做前端的hash切换页面的思路: 1. page manager来管理多个page(一对多的关系); 2. route:URL <-> Page; 3. P ...

  7. html5 app开发,你知道多少?

    随着大量新生移动设备的兴起,改变了互联网的未来,html5技术为开发者提供了一个跨平台的移动app开发方案,并且该方案具有很好的扩展性和灵活性,但就国内使用html5开发app应用技术来讲,还是有欠缺 ...

  8. iostat 命令

    iostat -x 1 10 Linux 2.6.18-92.el5xen 02/03/2009 avg-cpu: %user %nice %system %iowait %steal %idle 1 ...

  9. ASP.NET MVC location.href不跳转

    表单使用submit导致不跳转 <button type="button">

  10. iOS,iOS对Android数据互通的规则

    AppStore针对数据互通的规则:在AppStore上架的应用,苹果会按照3:7的比例抽取IAP( In-App Purchase)三成的收入,作为渠道费用 11.2    Apps utilizi ...