NHibernate二级缓存提供程序的差异

时间:2010-09-27 15:54:32

标签: nhibernate caching

我已经使用NHibernate一段时间了,我仍然想知道二级缓存提供商之间的差异是什么?

  • 有些表现更好\更糟吗?
  • 什么是受欢迎的,为什么?

为清楚起见,我在谈论:

  • NHibernate.Caches.MemCache
  • NHibernate.Caches.Prevalence
  • NHibernate.Caches.SharedCache
  • NHibernate.Caches.SysCache
  • NHibernate.Caches.SysCache2
  • NHibernate.Caches.Velocity

我确信还有其他人。

由于

1 个答案:

答案 0 :(得分:12)

比较这些缓存提供程序有效归结为比较memcached vs prevalence vs Velocity等,这与NHibernate无关。

以下是一些原因(绝不是完整的清单)选择其他原因:

如果您想保持简单并且不在服务器场中运行应用程序,则可能需要使用在进程中运行的SysCache / Prevalence。如果使用MS SQL Server,请使用SysCache2。

如果您需要在许多缓存专用服务器上使用大量缓存,您可能需要使用可在Linux上运行的memcached,这样您就可以避免许可成本。

如果您的应用程序在Azure上运行或已经使用AppFabric,则可能需要使用Velocity。

就我个人而言,我更倾向于在比数据访问更高的层次上进行缓存(仅在真正需要时),以使缓存比仅仅实体更有意义和有意义,并且不仅仅包含缓存中的数据访问。在设计合理的系统中,使用装饰器或代理可以轻松实现缓存。