Различия между поставщиками кэш-памяти NHibernate 2-го уровня - PullRequest
16 голосов
/ 27 сентября 2010

Я уже некоторое время пользуюсь NHibernate, мне все еще интересно, чем отличаются поставщики кэша второго уровня?

  • Некоторые из них работают лучше \ хуже?
  • Что популярно и почему?

Для ясности я говорю о:

  • NHibernate.Caches.MemCache
  • NHibernate.Caches.Prevalence
  • NHibernate.Caches.SharedCache
  • NHibernate.Caches.SysCache
  • NHibernate.Caches.SysCache2
  • NHibernate.Caches.Velocity

и я уверен, что есть и другие.

Спасибо

1 Ответ

12 голосов
/ 27 сентября 2010

Сравнение этих поставщиков кеша фактически сводится к сравнению memcached с распространенностью и скоростью, и т. Д., И это не имеет никакого отношения к NHibernate.

Вот несколько причин (отнюдь не полный список), чтобы выбрать одну из других:

Если вы хотите сохранить простоту и не запускать свое приложение на ферме, вы можете использовать SysCache / Prevalence, который запускается in-proc. Если вы используете MS SQL Server, используйте SysCache2.

Если вам требуется большой кеш на многих выделенных кеш-серверах, вы можете использовать memcached, который может работать в Linux, чтобы избежать затрат на лицензирование.

Если ваше приложение работает в Azure или уже использует AppFabric, вы можете использовать Velocity.

Лично я предпочитаю делать кэширование на более высоком уровне, чем доступ к данным (только когда это действительно необходимо), чтобы сделать кэширование более целенаправленным и значимым, чем просто сущности, и охватить больше, чем доступ к данным в кеше. В правильно спроектированной системе кэширование может быть легко прозрачным с помощью декораторов или прокси.

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