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

时间:2009-03-11 23:34:33

标签: asp.net-mvc nhibernate

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

感谢您的选择。

3 个答案:

答案 0 :(得分:11)

HashTable是默认的内置缓存提供程序。建议使用此功能。

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

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

有关详细信息,请查看documentation on NHibernate.Caches

答案 1 :(得分: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

更多文档 Best place for NHibernate documentation?

答案 2 :(得分:-1)

使用最好的缓存?你的意思是缓存类型?还是缓存平台?

内置了HttpRuntime.Cache。取决于您的应用程序缓存内容。