我已经使用 NHibernate 一段时间了,我仍然想知道二级缓存提供者之间有什么区别?
为了清楚起见,我正在谈论:
我相信还有其他人。
谢谢
最佳答案
有效地比较这些缓存提供程序归结为比较 memcached、流行度和速度等,这与 NHibernate 没有真正的关系。
以下是选择一个而不是其他的一些原因(绝不是一个完整的列表):
如果您想保持简单并且不在场中运行您的应用程序,您可能需要使用 SysCache/Prevalence,它在进程内运行。如果您使用 MS SQL Server,请使用 SysCache2。
如果您需要跨多个缓存专用服务器的巨大缓存,您可能需要使用 memcached,它可以在 Linux 上运行,这样您就可以避免许可成本。
如果您的应用程序在 Azure 上运行或已经使用 AppFabric,您可能需要使用 Velocity。
就我个人而言,我更喜欢在比数据访问更高的级别上缓存自己(仅在真正必要时),以使缓存比实体更有意和更有意义,并且在缓存中包含的不仅仅是数据访问。在设计合理的系统中,缓存可以使用装饰器或代理轻松透明。
关于NHibernate 2nd Level Cache Provider 的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3805528/