Nhibernate缓存与asp.net缓存

时间:2012-03-06 12:06:28

标签: asp.net nhibernate caching

我正在阅读有关Nhibernate缓存的内容,任何机构都可以告诉我,Nhibernate缓存优于Asp.net缓存技术的优势是什么?我们何时使用Nhibernate缓存而不是Asp.Net缓存。

3 个答案:

答案 0 :(得分:2)

它们是根本不同的东西。第一级和第二级NHibernate缓存的目的是尽可能多地从数据库中查询。这里有一篇很好的SO文章: - What are First and Second Level caching in Hibernate?

答案 1 :(得分:1)

首先让我们理解这个概念,NHibernate是一个领先的开源对象关系映射(ORM)解决方案,简化了.NET应用程序的数据库编程。默认情况下,它提供独立的InProc(进程中)第一级(L1)缓存或会话级缓存。但是如果你在多服务器环境中运行,那么第一级缓存可能不是很可扩展,并且最终会出现一些性能问题,因为当数据分布在多个服务器上时,它必须经常访问数据库.NHibernate还支持插入二级缓存,以利用复杂的企业级缓存基础架构带来的好处。

ASP.NET的Application范围内的ASP.NET Cache对象。这使您可以缓存应用程序数据并减少这些昂贵的数据库跳转并提高ASP.NET性能。以下是ASP.NET Cache的常用方法.ASP.NET Cache是​​一个独立的进程内(InProc)缓存,因此如果您的应用程序部署在负载平衡的Web场中,则存在许多限制。

请阅读这些帖子以进一步了解。

答案 2 :(得分:0)

我只是想添加几句话来扩展您的问题,这两个缓存最终都会执行相同的功能,它们会从数据库扩展数据以防止频繁访问它。 .net缓存在缓存方面具有一些优势,因为它允许您缓存所有内容,例如首先不需要存在于DB中的状态数据。二级缓存更难控制和配置。

如果您正在寻找更多高级缓存解决方案,则需要检查其他产品,例如ncache,GigaSpaces和Gemfire。那些可以提供规模/高可用的缓存解决方案。