C#缓存主要是为了提高数据的读取速度。因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高程序的性能。

以下为工作中经常用到的缓存操作公用类库整理:

  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Web;
  6. using System.Web.Caching;
  7. using System.Web.Hosting;
  8. namespace ECS.Utility
  9. {
  10. /// <summary>
  11. /// Caching 的摘要说明
  12. /// </summary>
  13. public class Caching
  14. {
  15.  
  16. /// <summary>
  17. /// 获取当前应用程序指定CacheKey的Cache值
  18. /// </summary>
  19. /// <param name="CacheKey"></param>
  20. /// <returns></returns>y
  21. public static object GetCache(string CacheKey)
  22. {
  23. System.Web.Caching.Cache objCache = HttpRuntime.Cache;
  24. return objCache[CacheKey];
  25. }
  26.  
  27. /// <summary>
  28. /// 设置当前应用程序指定CacheKey的Cache值
  29. /// </summary>
  30. /// <param name="CacheKey"></param>
  31. /// <param name="objObject"></param>
  32. public static void SetCache(string CacheKey, object objObject)
  33. {
  34. System.Web.Caching.Cache objCache = HttpRuntime.Cache;
  35. objCache.Insert(CacheKey, objObject);
  36. }
  37.  
  38. /// <summary>
  39. /// 设置当前应用程序指定CacheKey的Cache值
  40. /// </summary>
  41. /// <param name="CacheKey"></param>
  42. /// <param name="objObject"></param>
  43. public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration)
  44. {
  45. System.Web.Caching.Cache objCache = HttpRuntime.Cache;
  46. objCache.Insert(CacheKey, objObject, null, absoluteExpiration, slidingExpiration);
  47. }
  48.  
  49. /// <summary>
  50. /// 清除单一键缓存
  51. /// </summary>
  52. /// <param name="key"></param>
  53. public static void RemoveKeyCache(string CacheKey)
  54. {
  55. try
  56. {
  57. System.Web.Caching.Cache objCache = HttpRuntime.Cache;
  58. objCache.Remove(CacheKey);
  59. }
  60. catch { }
  61. }
  62.  
  63. /// <summary>
  64. /// 清除所有缓存
  65. /// </summary>
  66. public static void RemoveAllCache()
  67. {
  68. System.Web.Caching.Cache _cache = HttpRuntime.Cache;
  69. IDictionaryEnumerator CacheEnum = _cache.GetEnumerator();
  70. if (_cache.Count > 0)
  71. {
  72. ArrayList al = new ArrayList();
  73. while (CacheEnum.MoveNext())
  74. {
  75. al.Add(CacheEnum.Key);
  76. }
  77. foreach (string key in al)
  78. {
  79. _cache.Remove(key);
  80. }
  81. }
  82. }
  83.  
  84. /// <summary>
  85. /// 以列表形式返回已存在的所有缓存
  86. /// </summary>
  87. /// <returns></returns>
  88. public static ArrayList ShowAllCache()
  89. {
  90. ArrayList al = new ArrayList();
  91. System.Web.Caching.Cache _cache = HttpRuntime.Cache;
  92. if (_cache.Count > 0)
  93. {
  94. IDictionaryEnumerator CacheEnum = _cache.GetEnumerator();
  95. while (CacheEnum.MoveNext())
  96. {
  97. al.Add(CacheEnum.Key);
  98. }
  99. }
  100. return al;
  101. }
  102.  
  103. }
  104. }

C#数据缓存介绍及Caching通用帮助类整理的更多相关文章

  1. Lind.DDD.Caching分布式数据集缓存介绍

    回到目录 戏说当年 大叔原创的分布式数据集缓存在之前的企业级框架里介绍过,大家可以关注<我心中的核心组件(可插拔的AOP)~第二回 缓存拦截器>,而今天主要对Lind.DDD.Cachin ...

  2. .net 数据缓存(一)之介绍

    现在的业务系统越来复杂,大型门户网站内容越来越多,数据库的数据量也越来愈大,所以有了“大数据”这一概念的出现.但是我们都知道当数据库的数据量和访问过于频繁都会影响系统整体性能体验,特别是并发量高的系统 ...

  3. c#缓存介绍(转)

    缓存主要是为了提高数据的读取速度.因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高程序的性能. 本章从缓存 ...

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

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

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

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

  6. SQL SERVER 2000 & SQL SERVER 2005 数据缓存依赖

    一.SQL SERVER 7.0/2000和SQL SERVER 2005的简介及比较 1.1     SQL SERVER 7.0/2000 SQL SERVER 7.0/2000没有提供内置的支持 ...

  7. 使用SQLite做本地数据缓存的思考

    前言 在一个分布式缓存遍地都是的环境下,还讲本地缓存,感觉有点out了啊!可能大家看到标题,就没有想继续看下去的欲望了吧.但是,本地缓存的重要性也是有的! 本地缓存相比分布式缓存确实是比较out和比较 ...

  8. netcore中的缓存介绍

    Cache(缓存)是优化web应用的常用方法,缓存存放在服务端的内存中,被所有用户共享.由于Cache存放在服务器的内存中,所以用户获取缓存资源的速度远比从服务器硬盘中获取快,但是从资源占有的角度考虑 ...

  9. Spring Boot 揭秘与实战(二) 数据缓存篇 - Guava Cache

    文章目录 1. Guava Cache 集成 2. 个性化配置 3. 源代码 本文,讲解 Spring Boot 如何集成 Guava Cache,实现缓存. 在阅读「Spring Boot 揭秘与实 ...

随机推荐

  1. Java设计模式——观察者模式

    转载自:http://www.cnblogs.com/V1haoge/p/6513651.html 观察者接口:Observer public interface Observer { void up ...

  2. 洛谷 [P2766] 最长不下降子序列问题

    啊啊啊,再把MAXN和MAXM搞反我就退役 层次图求不相交路径数 第一问简单DP 第二问想办法把每一个不上升子序列转化成DAG上的一条路径,就转换成了求不相交路径数 因为每一个数只能用一次,所以要拆点 ...

  3. 如何使用 Bootstrap 搭建更合理的 HTML 结构

    前言 Bootstrap 的成功不仅在于其简单易用,更在于其样式的规范性以及 HTML 结构的合理性.但是很多人在使用 Bootstrap 时只是依照文档盲目的复制黏贴,并没有仔细考虑每个类的用处,也 ...

  4. MessagePack简析

    一.MessagePack是什么 先看官方的定义:MessagePack是一种高效的二进制序列化格式.它允许您像JSON一样在多个语言之间交换数据.但是,它更快并且更小. 从官方定义中,可以有如下的结 ...

  5. [实例]JAVA生成字母+随机数字并生成文件

    package com.ishow.control.code; import java.io.*; import java.text.SimpleDateFormat; import java.uti ...

  6. Docker-v17 的层级(layer)概念

    html,body { font-size: 12pt } body { font-family: Helvetica, "Hiragino Sans GB", "微软雅 ...

  7. R语言-广义线性模型

    使用场景:结果变量是类别型,二值变量和多分类变量,不满足正态分布  结果变量是计数型,并且他们的均值和方差都是相关的 解决方法:使用广义线性模型,它包含费正太因变量的分析 1.Logistics回归( ...

  8. ionic2+Angular web端 实现微信分享以及如何跳转回分享出去的页面

    微信分享,首先参考微信JS-SDK开发文档. step1:在启动文件index.html中引入微信js文件: <script src="http://res.wx.qq.com/ope ...

  9. 备忘录之 —— .bashrc(IC工具篇)

    好久没有使用这些IC工具了,装在自己的虚拟机中的Linux系统里面,现在想要卸载掉,想起之前自己辛辛苦苦的折腾这些工具配置,如果直接删除,感觉未免有点对不起自己的劳动成果,或许以后再也用不到了,就当是 ...

  10. 用最简单的例子实现jQuery图片即时上传

    [http://www.cnblogs.com/Zjmainstay/archive/2012/08/09/jQuery_upload_image.html] 最近看了一些jQuery即时上传的插件, ...