缓存依赖文件或文件夹

//创建缓存依赖项

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. 重写ajax方法实现特定情况下跳转登录页面

    jQuery(function($){ // 备份jquery的ajax方法 var _ajax=$.ajax; // 重写ajax方法, $.ajax=function(opt){ var _suc ...

  2. OpenCV - Linux(Ubuntu 16.04)中安装OpenCV + OpenCV_Contrib

    近两个月来接触了Linux系统,在老板的建议下翻了Ubuntu的牌子,我安装的版本是16.04,用习惯之后感觉蛮好的,比Windows要强.好啦,废话不说啦,下面开始说在Ubuntu中安装OpemCV ...

  3. Codeforces 983B. XOR-pyramid【区间DP】

    LINK 定义了一种函数f 对于一个数组b 当长度是1的时候是本身 否则是用一个新的数组(长度是原数组-1)来记录相邻数的异或,对这个数组求函数f 大概是这样的: \(f(b[1]⊕b[2],b[2] ...

  4. 安装配置adb工具及遇到的问题

    一. 下载安装 配置环境 二.遇到的问题 1.Terminal 不是内部或外部命令,也不是可运行程序或批处理文件 https://blog.csdn.net/wuqilianga/article/de ...

  5. WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit)

    Windows Community Toolkit 再次更新到 5.0.以前可以在 WPF 中使用有限的 UWP 控件,而现在有了 WindowsXamlHost,则可以使用更多 UWP 原生控件了. ...

  6. gcc编译器配置

    一.使用交叉编译器编译 1.安装交叉编译工具链 2.导出环境变量 [ubuntu @tmp]$ export PATH=$PATH:/usr/local/oecore-x86_64/sysroots/ ...

  7. ajax请求返回Json字符串运用highcharts数据图表展现数据

    [1].[图片] Json字符串和highcharts数据图表展现.jpg 跳至 [1] code=26754#44745" rel="nofollow"> [2] ...

  8. Phonegap 工作原理

    1.Phonegap是什么 PhoneGap 是一个基于HTML和JavaScript的应用开发平台,使用它可以构建本地应用.你可以把PhoneGap看作一个正方形的web view containe ...

  9. const T & 的适用范围

    我们往往在类中的函数体,重载操作中看到 const T & 的影子,以前还是比较纳闷. 对于非内部数据类型的参数而言,象void Func(A a) 这样声明的函数注定效率比较底.因为函数体内 ...

  10. VS工具相关内容

    1.VS自带的Visual Studio中的<C# 语言规范>安装路径:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC#\Sp ...