Сравнение этих поставщиков кеша фактически сводится к сравнению memcached с распространенностью и скоростью, и т. Д., И это не имеет никакого отношения к NHibernate.
Вот несколько причин (отнюдь не полный список), чтобы выбрать одну из других:
Если вы хотите сохранить простоту и не запускать свое приложение на ферме, вы можете использовать SysCache / Prevalence, который запускается in-proc. Если вы используете MS SQL Server, используйте SysCache2.
Если вам требуется большой кеш на многих выделенных кеш-серверах, вы можете использовать memcached, который может работать в Linux, чтобы избежать затрат на лицензирование.
Если ваше приложение работает в Azure или уже использует AppFabric, вы можете использовать Velocity.
Лично я предпочитаю делать кэширование на более высоком уровне, чем доступ к данным (только когда это действительно необходимо), чтобы сделать кэширование более целенаправленным и значимым, чем просто сущности, и охватить больше, чем доступ к данным в кеше. В правильно спроектированной системе кэширование может быть легко прозрачным с помощью декораторов или прокси.