Каков наилучший кеш для Nhibernate при использовании веб-приложения MVC? - PullRequest
8 голосов
/ 12 марта 2009

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

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

Ответы [ 3 ]

11 голосов
/ 07 октября 2009

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

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

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

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

3 голосов
/ 12 марта 2009

Если вы спрашиваете о методологии обработки кэша 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?

0 голосов
/ 12 марта 2009

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

Существует встроенный HttpRuntime.Cache. Зависит от вашего приложения для того, что кэшировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...