缓存依赖文件或文件夹

//创建缓存依赖项

CacheDependency dep = new CacheDependency(fileName);//Server.MapPath("");

//创建缓存

HttpRuntime.Cache.Insert(key, obj, dep);

fileName:可以是文件或者文件夹目录

若fileName是文件,则你创建的缓存依赖该文件,该文件若更改,则缓存更新。

若fileName是一个文件夹目录,则缓存依赖该文件夹,该文件夹跟目录下的文件若有变动,则缓存更新。

缓存依赖多个文件或文件夹

CacheDependency dep1 = new CacheDependency(fileName1); 
CacheDependency dep2 = new CacheDependency(fileName2);
CacheDependency[] deps = new CacheDependency[] { dep1, dep2 };
AggregateCacheDependency mulDep = new AggregateCacheDependency(); //多个依赖项
mulDep.Add(deps);
HttpRuntime.Cache.Insert(key, obj, mulDep);

MVC缓存

[OutputCache(Duration = 20)]

MVC数据库依赖缓存

  1. <connectionStrings>
  2. <add name="Am_WeixinWeb" connectionString="data source=192.168.1.200;initial catalog=Am_WeixinWeb;uid=sa;password=lh1234;" />
  3. </connectionStrings>
  1. <caching>
  2. <sqlCacheDependency enabled="true" pollTime="2000">
  3. <databases>
  4. <add name="Test" connectionStringName="Am_WeixinWeb" />
  5. </databases>
  6. </sqlCacheDependency>
  7. </caching>

注:pollTime,毫秒为单位,意识是每隔2秒检测下数据库,检测表是否有发生变化。connectionStringName为数据库链接字符串。

  1. //mvc缓存依赖
  2. [OutputCache(Duration = 20, SqlDependency = "Test:Am_recProScheme")] //Test:为缓存配置的key,后面跟的是缓存依赖表
  3. public ActionResult Index()
  4. {
  5. Response.Write(db.Am_recProScheme.FirstOrDefault().recContent);
  6. return View();
  7. }

效果:数据库Am_WeixinWeb中表Am_recProScheme中的数据有所变动,则清空缓存,重新写入。

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Web.Caching;
  6. using System.Web;
  7.  
  8. namespace Framework.Common
  9. {
  10. /// <summary>
  11. /// 缓存辅助类
  12. /// </summary>
  13. public class CacheHelper
  14. {
  15. /// <summary>
  16. /// 创建缓存项的文件依赖
  17. /// </summary>
  18. /// <param name="key">缓存Key</param>
  19. /// <param name="obj">object对象</param>
  20. /// <param name="fileName">文件绝对路径</param>
  21. public static void Insert(string key, object obj, string fileName)
  22. {
  23. //创建缓存依赖项
  24. CacheDependency dep = new CacheDependency(fileName);
  25. //创建缓存
  26. HttpRuntime.Cache.Insert(key, obj, dep);
  27. }
  28.  
  29. /// <summary>
  30. /// 创建缓存项过期
  31. /// </summary>
  32. /// <param name="key">缓存Key</param>
  33. /// <param name="obj">object对象</param>
  34. /// <param name="expires">过期时间(分钟)</param>
  35. public static void Insert(string key, object obj, int expires)
  36. {
  37. if (string.IsNullOrEmpty(key) || obj == null)
  38. {
  39. return;
  40. }
  41. HttpRuntime.Cache.Insert(key, obj, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, expires, 0));
  42. }
  43.  
  44. /// <summary>
  45. /// 获取缓存对象
  46. /// </summary>
  47. /// <param name="key">缓存Key</param>
  48. /// <returns>object对象</returns>
  49. public static object Get(string key)
  50. {
  51. if (string.IsNullOrEmpty(key))
  52. {
  53. return null;
  54. }
  55. return HttpRuntime.Cache.Get(key);
  56. }
  57.  
  58. /// <summary>
  59. /// 获取缓存对象
  60. /// </summary>
  61. /// <typeparam name="T">T对象</typeparam>
  62. /// <param name="key">缓存Key</param>
  63. /// <returns></returns>
  64. public static T Get<T>(string key)
  65. {
  66. object obj = Get(key);
  67. return obj == null ? default(T) : (T)obj;
  68. }
  69. }
  70. }

  

参考:http://www.cnblogs.com/knowledgesea/p/3904929.html

C#缓存-依赖 CacheHelper的更多相关文章

  1. 缓存依赖中cachedependency对象

    缓存依赖主要提供以下功能:1.SQL 缓存依赖项可用于应用程序缓存和页输出缓存.2.可在 SQL Server 7.0 及更高版本中使用 SQL 缓存依赖项.3.可以在网络园(一台服务器上存在多个处理 ...

  2. SQL server数据缓存依赖

    SQL server数据缓存依赖有两种实现模式,轮询模式,通知模式. 1  轮询模式实现步骤 此模式需要SQL SERVER 7.0/2000/2005版本以上版本都支持        主要包含以下几 ...

  3. ASP.NET MVC3系列页面缓存、缓存依赖SQL(真实项目注意细节)

    缓存依赖数据库 第一步 1通过vs里面带的命令提示窗口. 2或者.NET Framework 版本 4(64 位系统)条件,%windir%\Microsoft.NET\Framework64\v4. ...

  4. 缓存技术之——Yii2性能优化之:缓存依赖

    Yii中的缓存依赖,简单来说就是将缓存和另外一个东西绑定在一起,如果另外一个东西发生变化,那么缓存也将发生变化.有点儿类似于JS中的触发事件(但是也不那么像),缓存的变动是依赖的东西所导致的. 依赖可 ...

  5. cache应用(asp.net 2.0 SQL数据缓存依赖 [SqlCacheDependency ] )

    Asp.net 2.0 提供了一个新的数据缓存功能,就是利用sql server2005 的异步通知功能来实现缓存 1.首先在sqlserver2005 中创建一个test的数据库. 在SQL Ser ...

  6. SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]

    前言 本文主要是对<ASP.NET 2.0开发指南>——<数据缓存>章节内容的提取并略有补充. 参考资料 1.     <ASP.NET 2.0开发指南> 2.   ...

  7. ASP.NET缓存全解析6:数据库缓存依赖 转自网络原文作者李天平

    更多的时候,我们的服务器性能损耗还是在查询数据库的时候,所以对数据库的缓存还是显得特别重要,上面几种方式都可以实现部分数据缓存功能.但问题是我们的数据有时候是在变化的,这样用户可能在缓存期间查询的数据 ...

  8. ASP.NET缓存全解析5:文件缓存依赖 转自网络原文作者李天平

    这种策略让缓存依赖于一个指定的文件,通过改变文件的更新日期来清除缓存. ///<summary> /// 获取当前应用程序指定CacheKey的Cache对象值 ///</summa ...

  9. (转)ASP.NET缓存全解析6:数据库缓存依赖

    ASP.NET缓存全解析文章索引 ASP.NET缓存全解析1:缓存的概述 ASP.NET缓存全解析2:页面输出缓存 ASP.NET缓存全解析3:页面局部缓存 ASP.NET缓存全解析4:应用程序数据缓 ...

随机推荐

  1. Yii在window下的安装方法

    首先,在http://www.yiichina.com/上下载yii 然后,配置系统环境变量,在win8下,按win+x,找到系统->高级系统设置->环境变量->path 把php的 ...

  2. Bootstrap文件上传组件

    前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了.前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签, ...

  3. localhost能连接websocket 127.0.0.1 不能连接问题?

    最近开发中遇到一个问题,就是有的浏览器电脑能连接websocket , 有的不能 , 有的能用localhost连接,有的能用127.0.0.1连接,这个问题很奇怪 提供一个很好测试websocket ...

  4. [团队项目]Scrum 项目1.0 (演说视频)

    1.确定选题. 应用NABCD模型,分析你们初步选定的项目,充分说明你们选题的理由. 录制为演说视频,上传到视频网站,并把链接发到团队博客上. 截止日期:2016.5.6日晚10点 2.SCRUM 流 ...

  5. php 数据类型转换与比较

    <?php define("PI", 3.1415926); echo PI."<br>"; //定义一个常量 define("GR ...

  6. flexible.js框架改写

    前一阶段拜读了阿里团队的flexible.js,但是flexible的封装感觉还是不完美,因为flexible还是要依赖less/sass之类的编译执行,所以就存了一些问题,我把这些问题进行整理. 优 ...

  7. Visual Studio环境变量、工作目录、vc++目录、 命令等 的配置和作用

    在调试 Visual Studio 2008 程序时,经常有一些动态链接库(即 dll 文件)需要加载到工程里,这样才能依赖第三方库进行程序调试. 这些动态链接库,往往都是测试版本或是开发中的版本,或 ...

  8. FatJar—Java Application制作jar包

    Fat Jar功能非常强大,先下载吧. 下载地址:sourceforge.net/projects/fjep/files/ http://files.cnblogs.com/files/nidongd ...

  9. JS截取字符串常用方法详细整理&&MYSQL

    截取字符串的使用比较广泛,有很多中方法,本文粗略的整理了一些,感兴趣的额朋友可以才参考下 使用 substring()或者slice() 函数:split() 功能:使用一个指定的分隔符把一个字符串分 ...

  10. RMAN非归档

    改变归档模式到非归档模式: 1)SQL>SHUTDOWN IMMEDIATE; 2)SQL>STARTUP MOUNT; 3)SQL>ALTER DATABASE NOARCHIVE ...