Какой лучший кеш для Nhibernate при использовании веб-приложения MVC?

если вы использовали Nhibernate для доступа к данным в приложении MVC, какой был бы лучший поставщик кеша, например. Syscache, Syscache2, Memcache, HashTable .. использовать?

Спасибо за ваши мнения.


person Richard    schedule 11.03.2009    source источник


Ответы (3)


Если вы спрашиваете о методологии обработки кэша NHibernate (NHibernate не хранит / не извлекает данные кеша, нам нужно отдельно настроить поставщика кеша для этого)

Из-за природы веб-приложений (многопотоковое приложение) мы не можем использовать кэш первого уровня. Но мы можем использовать

  • Кэш второго уровня
  • Кэш запросов

При использовании кеша он может отображать старые данные в следующих случаях

  • Когда данные изменяются другим клиентом (кроме клиента ASP.Net)
  • Когда данные изменяются триггерами

Итак, не забудьте очистить кеш, если существуют указанные выше случаи.


Что касается поставщиков кеша,

Nhibernate поддерживает несколько кеш-провайдеров, Syscache, Syscache2, Memcache, HashTable и т. Д. Я использую Syscache, и он отлично работает. Поскольку я не работал с другими поставщиками кешей, я не могу их сравнивать.

Старая и единственная документация для кэшей Nhibernate http://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/caches.html.

Дополнительные документы Лучшее место для документации NHibernate?

person Palani    schedule 12.03.2009

HashTable - это поставщик встроенного кеша по умолчанию. Рекомендуется не использовать этот.

  • SysCache использует System.Web.Caching.Cache в качестве поставщика кеширования.
  • SysCache2 в основном то же самое, за исключением того, что он также поддерживает истечение срока действия на основе зависимостей SQL. Требуется MSSQL 2000+.

В большинстве сценариев (кроме веб-фермы) провайдера SysCache должно быть достаточно.

Для получения дополнительной информации ознакомьтесь с документацией по NHibernate.Caches

person Joey V.    schedule 07.10.2009

Лучший кеш для использования? Вы имеете в виду тип кеша? Или кеш-платформа?

Имеется встроенный HttpRuntime.Cache. Что кэшировать, зависит от вашего приложения.

person ChadT    schedule 11.03.2009
comment
Он имеет в виду кеш второго уровня NHibernate, а не общий кеш приложения. - person UpTheCreek; 09.01.2011