博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[翻译].NET框架中的缓存
阅读量:6690 次
发布时间:2019-06-25

本文共 1616 字,大约阅读时间需要 5 分钟。

.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,都可用的成员。你可以创建自己的缓存,提供一个不同的存储机制,或者是你想要更小粒度的控制缓存的操作。
 
可以通过下面的方式实现一个自定义缓存:
  • 创建一个继承ObjectCache的类,提供自定义的缓存实现。
  • 创建一个集成MemoryCache的类,提供自定义的缓存实现。Caching Application Data by Using Multiple Cache Objects in an ASP.NET 
  • 创建一个继承OutputCacheProvider的类,并且配置应用使用这个自定义的输出缓存provider。
 
 

参考文献

1.

转载地址:http://vqzoo.baihongyu.com/

你可能感兴趣的文章
40个非常聪明的户外广告设计案例(上篇)
查看>>
部署虚拟化的关键几步
查看>>
关于怎么实现前端页面中的前端的部分
查看>>
3-python中文编码问题个人总结
查看>>
转 - Unix目录结构的来历
查看>>
开发平台部署到sunflysp上
查看>>
我的友情链接
查看>>
小区WLAN无线网卡上面无信号,用测试软件搜不到信号处理办法
查看>>
saltstack管理四之pillar和grains
查看>>
2017年终总结
查看>>
Linux终端下 dstat 监控工具
查看>>
python爬虫
查看>>
[Thinking in JAVA] 前N章的一些小知识
查看>>
字体跨域问题【解决】
查看>>
bugzilla安装笔记
查看>>
My Python笔记
查看>>
C++一些标准模板容器简要介绍(1)
查看>>
Gradle依赖的统一管理
查看>>
我的友情链接
查看>>
Android SDK Managerr开发工具包离线打包 已下载4.1、4.0.3、4.0、2.3.3、1.6直接使用
查看>>