惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
L
LangChain Blog
A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
美团技术团队
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
D
DataBreaches.Net
P
Proofpoint News Feed
小众软件
小众软件
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
WordPress大学
WordPress大学
雷峰网
雷峰网
G
Google Developers Blog

博客园 - Virus-BeautyCode

【新年第一篇】平台的账号管理系统设计的设想 从短信类到短信平台之设计篇 需求分析 在系统集成中面临多个产品的时候如何选择? 动态表单数据库设计 图片存储那些事 动态可配置表单的设计构思 缓存使用的思考1 【翻译】SQL Server索引进阶:第一级,索引简介 网站架构资料收集整理 培养我们的目标感 使用Django来处理对于静态文件的请求 项目-团队-技术-个人(提拔篇) 项目-团队-技术-个人(专业篇) 项目-团队-技术-个人 (团队建设篇) MongoDB在Windows2003上得安装配置及使用 【翻译】MVC vs. MVP vs. MVVM 消息提示的架构演进-理论篇 MSSQL2005技术内幕-学习笔记
[翻译].NET框架中的缓存
Virus-BeautyCode · 2012-12-22 · via 博客园 - Virus-BeautyCode

2012-12-22 09:25  Virus-BeautyCode  阅读(4889)  评论()    收藏  举报

.NET框架中的缓存

原文地址

缓存使得你可以快速的获取内存中存储的数据。当再次访问数据的时候,应用从缓存中获取数据,而不是从数据的原始源获取。这么做可以提高性能和扩展性。另外,当数据源临时不可用的时候,缓存使得数据还是可用的。

你可以用.NET提供的缓存功能提高应用的性能和扩展性,缓存功能可以在windows客户端应用中使用,也可以在ASP.NET这种服务端应用中使用。

Note

在.NET Framework3.5和更早的版本中,ASP.NET提供了一个内存缓存的实现,放在System.Web.Caching命名空间下。所以在之前版本的.NET框架中,缓存只能通过System.Web命名空间获取,因此需要依赖一个ASP.NET类。在.NET Framwork4中,在System.Runtime.Caching命名空间下的缓存接口,Web应用和非Web应用都可以使用。

Caching Data

你可以使用System.Runtime.Caching命名空间下的类缓存数据。提供了下面的功能:

提供了一些抽象的类型,你可以继承这些抽象的类型,实现自己的缓存。

一个具体的实现好的内存缓存。

抽象基类提供了下面的功能:

  • 创建并管理缓存。
  • 指定过期和收回。
  • 在缓存信息改变的时候触发事件。

MemoryCache类是一个实现ObjectCache类的内存缓存,你可以用它来完成大部分的工作。

MemoryCache类的原型定义在System.Web.Caching空间中的ASP.NET缓存对象,因此,内部的缓存逻辑和早期的ASP.NET提供的缓存逻辑很相似。

在ASP.NET应用中使用缓存

使用System.Runtime.Caching中提供的缓存类可以给ASP.NET应用提供缓存功能。

Note 

如果你的ASP.NET应用是以.NET 3.5或者更早的版本为基础,你必须使用System.Web.Caching空间下的缓存类。

如果你是开发一个新的应用,推荐使用MemoryCache类。因为System.Runtime.Caching空间提供的接口和System.Web.Caching空间提供的接口很相似,如果你使用过早期版本的ASP.NET的话,你会感觉很亲切。

输出缓存

需要手动缓存应用中的数据,你可以在ASP.NET中使用MemoryCache类。ASP.NET也支持输出缓存,在内存中存储已经生成的页面、控件和http响应。你可以在ASP.NET页面中配置输出缓存,也可以在web.config中配置。

ASP.NET也允许你通过创建自定义输出缓存provider来扩展输出缓存。在自定义的provider中,你可以使用其他存储设备,例如:磁盘,云存储,分布式缓存,来存储输出缓存的内容。

创建自定义provider,你需要继承OutputCacheProvider类,并且在web.config中配置使用你自定义的provider。

扩展.NET Framework中的缓存

.NET Framework中的缓存被设计成可扩展的。ObjectCache类使得你可以创建自己的缓存实现。这个类提供了一些所有托管应用,例如:windows froms,wpf,wcp,都可用的成员。你可以创建自己的缓存,提供一个不同的存储机制,或者是你想要更小粒度的控制缓存的操作。

可以通过下面的方式实现一个自定义缓存:

参考文献

1..NET Baby Steps: Part VII - Caching