本文导读:在.NET运用中经常用到缓存(Cache)对象。有HttpContext.Current.Cache以及HttpRuntime.Cache,HttpRuntime.Cache是应用程序级别的,而HttpContext.Current.Cache是针对当前WEB上下文定义的。HttpRuntime下的除了WEB中可以使用外,非WEB程序也可以使用。

1、HttpRuntime.Cache 相当于就是一个缓存具体实现类,这个类虽然被放在了 System.Web 命名空间下了。但是非 Web 应用也是可以拿来用的。

2、HttpContext.Cache 是对上述缓存类的封装,由于封装到了 HttpContext ,局限于只能在知道 HttpContext 下使用,即只能用于 Web 应用。

综上所属,在可以的条件,尽量用 HttpRuntime.Cache ,而不是用 HttpContext.Cache 。

一、有以下几条缓存数据的规则

第一,数据可能会被频繁的被使用,这种数据可以缓存。

第二,数据的访问频率非常高,或者一个数据的访问频率不高,但是它的生存周期很长,这样的数据最好也缓存起来。

第三是一个常常被忽略的问题,有时候我们缓存了太多数据,通常在一台X86的机子上,如果你要缓存的数据超过800M的话,就会出现内存溢出的错误。所以说缓存是有限的。换名话说,你应该估计缓存集的大小,把缓存集的大小限制在10以内,否则它可能会出问题。在Asp.net中,如果缓存过大的话也会报内存溢出错误,特别是如果缓存大的DataSet对象的时候。

你应该认真分析你的程序。根据实际情况来看哪里该用,哪里不该用。如:cache用得过多也会增大服务器的压力。整页输出缓存,又会影响数据的更新。 如果真的需要缓存很大量的数据,可以考虑静态技术。

二、下面介绍HttpRuntime.Cache常用方法

C# 代码   复制

using System;

using System.Web;

using System.Collections;

public class CookiesHelper

{
/// <summary>/// 获取数据缓存/// </summary>/// <param name="CacheKey">键</param>public static object GetCache(string CacheKey)
{System.Web.Caching.Cache objCache = HttpRuntime.Cache;return objCache[CacheKey];}
/// <summary>/// 设置数据缓存/// </summary>public static void SetCache(string CacheKey, object objObject)
{System.Web.Caching.Cache objCache = HttpRuntime.Cache;objCache.Insert(CacheKey, objObject);}
/// <summary> /// 设置数据缓存 /// </summary> public static void SetCache(string CacheKey, object objObject, TimeSpan Timeout) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject, null, DateTime.MaxValue, Timeout, System.Web.Caching.CacheItemPriority.NotRemovable, null); } /// <summary> /// 设置数据缓存 /// </summary> public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject, null, absoluteExpiration, slidingExpiration); } /// <summary> /// 移除指定数据缓存 /// </summary> public static void RemoveAllCache(string CacheKey) { System.Web.Caching.Cache _cache = HttpRuntime.Cache; _cache.Remove(CacheKey); } /// <summary> /// 移除全部缓存 /// </summary> public static void RemoveAllCache() { System.Web.Caching.Cache _cache = HttpRuntime.Cache; IDictionaryEnumerator CacheEnum = _cache.GetEnumerator(); while (CacheEnum.MoveNext()) { _cache.Remove(CacheEnum.Key.ToString()); } } }

ASP.NET Cache缓存的用法相关推荐

  1. 细说 ASP.NET Cache 及其高级用法

    阅读目录 开始 Cache的基本用途 Cache的定义 Cache常见用法 Cache类的特点 缓存项的过期时间 缓存项的依赖关系 - 依赖其它缓存项 缓存项的依赖关系 - 文件依赖 缓存项的移除优先 ...

  2. asp.net Cache缓存定时更新数据

    asp.net教程 这个就先需要先知道一下System.Web.Caching.Cache类,其实在我做WEB应用的时候,我会将一些使用频繁但是又要经常使用并且需要急时更新的对象放到Cache中,这样 ...

  3. ASP.NET Cache缓存管理基于web的缓存

    <%@ OutputCache Location="Any" 输出缓存可以位于发出请求的客户端浏览器,代理服务器,处理请求的服务器,对应于HttpCacheability.p ...

  4. asp.net cache

    1. INTRODUCTION   大量的网站页面是采用动态的方式,根据用户提交的不同请求创建生成页面.正如我们所知的,动态页面有助于根据用户要求来提供定制的动态内容.动态页面也利于获取在数据库中每时 ...

  5. .Net MVC Cache 缓存技术总结

    一.细说 ASP.NET Cache 及其高级用法 二..Net环境下的缓存技术介绍 (转) 三.asp.net中缓存的使用介绍一 四.HttpContext.Current.Cache 过期时间

  6. ASP.NET状缓存Cache的应用-提高数据库读取速度

    ASP.NET状缓存Cache的应用-提高数据库读取速度 原文:ASP.NET状缓存Cache的应用-提高数据库读取速度 一. Cache概述        既然缓存中的数据其实是来自数据库的,那么缓 ...

  7. ASP.NET 中HttpRuntime.Cache缓存数据

    最近在开始一个微信开发,发现微信的Access_Token获取每天次数是有限的,然后想到缓存,正好看到微信教程里面推荐HttpRuntime.Cache缓存就顺便看了下. 写了(Copy)了一个辅助类 ...

  8. ASP.NE的缓存技术提高Web站点的性能

    一:我们为什么要使用缓存? 先来理解一下asp.net缓存技术的基本原理:把访问频繁的数据以及需要花大量的时间来加载的数据缓存在内存中,那么用户在下次请求同样的数据时,直接将内存中的数据返回给用户,从 ...

  9. 为 ASP.NET 创建缓存配置对象[转载]

    为 ASP.NET 创建缓存配置对象 发布日期: 4/1/2004 | 更新日期: 4/1/2004 Steven A. Smith ASPAlliance.com 适用于: Microsoft AS ...

  10. asp.net中缓存的使用介绍一

    介绍: 在我解释cache管理机制时,首先让我阐明下一个观念:IE下面的数据管理.每个人都会用不同的方法去解决如何在IE在管理数据.有的会提到用状态管理,有的提到的cache管理,这里我比较喜欢cac ...

最新文章

  1. oracle触发器的类型及使用方法
  2. Java日志性能那些事
  3. 平时喜欢使用的软件总结 欲善其事,必先利其器
  4. 新年新气象[xgluxv]
  5. Flask数据库学习
  6. 配置mysql复制基本步骤
  7. 背诵华为hcia认证考试题库答案能过吗?华为认证等级是怎样的
  8. 【数学】线性代数技巧篇
  9. C语言图形编程--俄罗斯方块制作(一)详解
  10. win10 java模拟鼠标_Win10移动体验:模拟鼠标工具
  11. 乞丐的一句话,感动中国13亿人。
  12. [转载]疯狂的程序员(1)
  13. 软件企业认定及软件产品登记申报表填报说明
  14. Arduino驱动LED128X64 - U8g2 自定义中文字库
  15. github免费建站和文件夹上传技巧
  16. 导购提成怎么算_导购员工资提成计算
  17. hyperterminal使用教程_hyperterminal 教程
  18. CRC校验matlab源码
  19. 中国生态系统服务空间/食物生产、土壤保持、水源涵养、防风固沙、生物多样性、碳固定
  20. aptio设置全中文_aptio setup解决步骤

热门文章

  1. python上下文管理器ContextLib及with语句
  2. 体重 年龄 性别 身高 预测鞋码_计算体重指数时,需要以下()数据。A.性别B.年龄C.身高D.体重...
  3. python中输入汉字_python汉字输入
  4. Java学习之路 之 使用技巧篇
  5. Android【报错】Failed to resolve: com.android.support:appcompat-v7:28.0.0-alpha【报错】
  6. Eclipse — 如何快速生成servlet类和配置文件(web里)
  7. L1-050 倒数第N个字符串 (15 分)—团体程序设计天梯赛
  8. L1-017 到底有多二 (15 分) — 团体程序设计天梯赛
  9. java中的对象传递
  10. 暑假集训 || 线段树