使用MVC Web应用程序时,Nhibernate的最佳缓存是什么?

Ric*_*ard 8 nhibernate asp.net-mvc

如果您在MVC应用程序中使用Nhibernate进行数据访问,那么最好的缓存提供程序是什么,例如Syscache,Syscache2,Memcache,HashTable ..?

谢谢你的选择.

Joe*_* V. 11

HashTable是默认的内置缓存提供程序.建议不要使用这个.

  • SysCache使用System.Web.Caching.Cache作为缓存提供程序
  • SysCache2基本相同,只是它还支持基于SQL依赖性的过期.它需要MSSQL 2000+.

在大多数情况下(非webfarm),SysCache提供程序应该足够好.

有关更多信息,请查看有关NHibernate.Caches文档


Pal*_*ani 3

如果您询问 NHibernate 的缓存处理方法,(NHibernate 本身不存储/检索缓存数据,我们需要单独配置缓存提供程序来做到这一点)

由于Web应用程序(多线程应用程序)的性质,我们不能使用一级缓存。但我们可以使用

  • 二级缓存
  • 查询缓存

使用缓存时,在以下情况下可能会显示旧数据

  • 当数据被不同客户端修改时,(ASP.Net客户端除外)
  • 当数据被触发器修改时

因此,当存在上述情况时,请务必清除缓存。


关于缓存提供者,

Nhibernate 支持多种缓存提供程序,Syscache、Syscache2、Memcache、HashTable 等。我使用 Syscache,它工作正常。由于我没有在其他缓存提供程序上工作过,所以我无法对它们进行比较。

Nhibernate 缓存的旧且唯一的文档 http://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/caches.html

更多文档 NHibernate 文档的最佳位置?