.NET缓存机制探讨与比对

开发 后端
本文介绍了.NET缓存机制的实际价值,并对几种缓存机制的比对进行了一些分析。合理使用缓存可以大幅度提高应用程序的性能。

相信大多数开发人员都比较了解缓存了,很多开发人员都在软件开发中使用了预定义或自定义的缓存,并从中获得了预期的应用程序的性能提升.这篇和后续文章将详细的介绍与探讨.net体系下的缓存实现的机制,并讨论它的优点与缺点.

.NET缓存机制:使用缓存的实际价值

在kevinhoffman,lonnykruger的书中写到:开发人员经常需要将数据(临时数据)临时存放到一个存储媒体以便快速访问.这种临时数据的存储器叫做缓存.如果开发人员合理使用缓存,则可以大幅度提高应用程序的性能.

上面是一段完美的关于缓存的定义,就目前而言,迅速而便捷的将数据提供给核心处理代码已成为一个重要的设计要求。,迅速是为了增强用户体验,便捷可以降低系统压力。而缓存则可以完成任务,虽然不是那么完美。

.NET缓存机制的共同点

形形色色的缓存机制几乎都有以下一些主要共同点:

1.提供数据临时存储,缓存数据是否存在具有不确定性。

2.可以设定缓存优先级。

3.可以制定缓存依赖,依赖过期则缓存数据不可用。

4.缓存的核心是MAP

.NET缓存机制比对之探讨

临时缓存VS持久缓存:

其实从理论上说微软.net的缓存解决方案是最完美的缓存的实现,但是正因为其教科书式的实现使得不少程序员们抱怨个不停。一个可能存在的悖论是:千辛万苦获得的数据被塞进缓存,因为系统内存紧张而被放弃,虽然它是为了缓解压力而来。这并不是微软的问题,而是程序员们贪得无厌的胃口和不当的使用方式所致。

在很多的开源缓存机制中都采用的持久缓存的方法来实现,其实这些与其说是缓存,我觉得更像是一个增强的session,将缓存的优先级,缓存依赖机制安装在其上。开发起来既简单又轻松(.net cache 牵涉了大量底层非托管代码)。

内容缓存VS数据缓存:

内容缓存不是唯一的选择,数据缓存也不是没有优点。虽然性能上稍有不足,但是把数据存放在数据库中却省去了清理缓存 淘宝购物导航 的麻烦,。另一个显而易见的优点是易于负载分配,尤其是我们拥有一个怪兽数据库服务器时。从实现技术上来说,麻烦的多线程问题也可以方便的转嫁。在选择实现内容缓存还是数据缓存,有很多不得不考虑的因素,花落谁家就看所开发的程序所特殊要求了.

值得重视的依赖:

.net framework给我们提供了常用的几个缓存依赖:时间,文件,数据库。但是由于微软一贯的作分,我们无法创建新类型的依赖(SqlCacheDependency功能何其何其之弱…)。企业库自定义依赖是个好主意,我们只需要继承ICacheItemExpiration接口即可!

【编辑推荐】

  1. 概述ASP.NET缓存机制
  2. ASP.NET数据缓存之数据缓存浅谈
  3. ASP.NET数据缓存机制浅析
  4. ASP.NET页面输出缓存
  5. ASP.NET缓存页面
责任编辑:yangsai 来源: 网络转载
相关推荐

2009-06-17 15:43:03

Hibernate缓存

2009-05-11 13:48:00

ASP.NET 2.0缓存效率

2009-08-04 15:22:33

ASP.NET缓存机制

2010-03-01 17:57:11

WCF缓存机制

2009-08-17 16:59:36

ASP.NET缓存机制

2009-08-03 18:35:51

ASP.NET数据缓存

2009-08-17 16:48:34

ASP.NET缓存机制

2010-01-15 09:15:09

Scala Actor并发

2010-04-01 09:22:38

代理模式Java反射机制

2012-05-10 11:25:34

LINQ

2009-07-29 10:56:54

ASP.NET构架与安

2010-07-21 09:38:15

PHP缓存技术

2010-11-22 14:18:32

MySQL锁机制

2011-07-04 16:48:56

JAVA垃圾回收机制GC

2023-02-24 16:46:25

Glide缓存机制

2009-09-02 09:23:26

.NET内存管理机制

2010-03-04 10:08:54

.Net垃圾收集

2010-06-18 09:23:33

SortedSet.NET 4

2010-01-19 18:24:29

VB.NET调用Win

2011-07-12 09:18:50

.NET
点赞
收藏

51CTO技术栈公众号