当前位置: 首页 > news >正文

HttpContext.Cache和HttpRuntime.Cache(转)

Asp.Net中可以方便的使用缓存,对于Cache,一般有两种方式调用:HttpContext.Cache和HttpRuntime.Cache。那么这两种Cache有什么区别呢?

先来看看Msdn上的注释:
HttpRuntime.Cache:获取当前应用程序的 Cache。
HttpContext.Cache:为当前 HTTP 请求获取 Cache 对象。

那么是不是说对于HttpRuntime.Cache就是应用程序级,而HttpContext.Cache则是针对每个用户的呢?NO,而实际上,两者调用的是同一个对象。他们的区别仅仅在于调用方式不一样(就我所知)。

事实胜过雄辩,写个例子来证实一下:


 
         /**/ ///   <summary>          ///  通过HttpRuntime.Cache的方式来保存Cache          ///   </summary>          private   void  btnHttpRuntimeCacheSave_Click( object  sender, System.EventArgs e)          ... {             HttpRuntime.Cache.Insert(cacheKey, cacheValue,  null , DateTime.Now.AddMinutes( 3 ), TimeSpan.Zero);         }          /**/ ///   <summary>          ///  通过HttpRuntime.Cache的方式来读取Cache          ///   </summary>          private   void  btnHttpRuntimeCacheLoad_Click( object  sender, System.EventArgs e)          ... {              if  (HttpRuntime.Cache[cacheKey]  ==   null )              ... {                 cacheContent  =   " No Cache " ;             }              else              ... {                 cacheContent  =  ( string )HttpRuntime.Cache[cacheKey];             }             lblCacheContent.Text  =  cacheContent;         }          /**/ ///   <summary>          ///  通过HttpContext.Cache的方式来保存Cache          ///   </summary>          private   void  btnHttpContextCacheSave_Click( object  sender, System.EventArgs e)          ... {             HttpContext.Current.Cache.Insert(cacheKey, cacheValue,  null , DateTime.Now.AddMinutes( 3 ), TimeSpan.Zero);         }          /**/ ///   <summary>          ///  通过HttpContext.Cache的方式来读取Cache          ///   </summary>          private   void  btnHttpContextCacheLoad_Click( object  sender, System.EventArgs e)          ... {              if  (HttpContext.Current.Cache[cacheKey]  ==   null )              ... {                 cacheContent  =   " No Cache " ;             }              else              ... {                 cacheContent  =  ( string )HttpContext.Current.Cache[cacheKey];             }             lblCacheContent.Text  =  cacheContent;         }
  1. 通过这个例子可以很容易证明: 
  2. HttpContext.Cache保存的Cache,HttpContext.Cache和HttpRuntime.Cache都可以读取。 
  3. HttpRuntime.Cache保存的Cache,HttpContext.Cache和HttpRuntime.Cache都可以读取。 
  4. 无论是哪个用户通过什么方式对Cache的改变,其他用户无论用什么方式读取的Cache内容也会随之变。

 

HttpRuntime.Cache 相当于就是一个缓存具体实现类,这个类虽然被放在了 System.Web 命名空间下了。但是非 Web 应用也是可以拿来用的(其它类型也可以用,如控制台等)。
HttpContext.Cache 是对上述缓存类的封装,由于封装到了 HttpContext ,局限于只能在知道 HttpContext 下使用,即只能用于 Web 应用。

相关文章:

  • selenium2获取input输入框中的值的三种方法。
  • win2003建立FTP的方法
  • JAVA 環境的配置
  • C# Owin初探 概念理解(一)
  • 好强大的车牌号啊
  • 对spring默认的单列模式的理解
  • [转]再读此文,作何感想?《荀子.劝学》
  • Android 自动化测试
  • 【原创】office突然打不开提示需要重新安装的解决办法
  • 阿里首次公开麒麟培育计划,将人类历史推进100年!
  • WAV转成MP3
  • AS 3.0与jsp通信(5)
  • 电脑进入BIOS界面就傻了?新版BIOS中英文对照图解
  • 增强WebClient的同步下载功能
  • redis集群以及测试
  • python3.6+scrapy+mysql 爬虫实战
  • 【前端学习】-粗谈选择器
  • HTTP那些事
  • Node 版本管理
  • Redis 中的布隆过滤器
  • supervisor 永不挂掉的进程 安装以及使用
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 全栈开发——Linux
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用Swoole加速Laravel(正式环境中)
  • 小程序测试方案初探
  • 小而合理的前端理论:rscss和rsjs
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • #100天计划# 2013年9月29日
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (16)Reactor的测试——响应式Spring的道法术器
  • (7)STL算法之交换赋值
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (接口自动化)Python3操作MySQL数据库
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (区间dp) (经典例题) 石子合并
  • (三分钟)速览传统边缘检测算子
  • (转)linux 命令大全
  • (转)详解PHP处理密码的几种方式
  • .gitignore文件—git忽略文件
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .net wcf memory gates checking failed
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .net 无限分类
  • .NET成年了,然后呢?
  • .NET大文件上传知识整理
  • .NET序列化 serializable,反序列化
  • //解决validator验证插件多个name相同只验证第一的问题
  • /bin/bash^M: bad interpreter: No such file or directory
  • @Async注解的坑,小心
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • @我的前任是个极品 微博分析