Ответ 1
Это те элементы, которые я рассматриваю для темы кэширования:
MemCached Win32 Скорость .net Cache Кэширование приложений корпоративной библиотеки
MemCached Win32: До недавнего времени я использовал MemCached Win32. Это сродни веб-ферме (многие серверы обслуживают один и тот же контент для высокой доступности), но это ферма кеша. Это означает, что вы можете установить его локально на своем веб-сервере изначально, если у вас нет ресурсов для увеличения. Затем, когда вы спускаетесь по дороге, вы можете масштабировать горизонтально (больше серверов) или вертикально (больше аппаратного обеспечения). Это продукт, который был перенесен из оригинального MemCached для работы в Windows. Этот продукт широко используется на очень высоких участках трафика. http://lineofthought.com/tools/memcached
Скорость:. Это ответ Microsoft на такие продукты, как MemCached. MemCached уже давно, Velocity находится в режиме CTP. Я должен сказать, что из того, что я прочитал до сих пор, этот продукт, безусловно, повернет мою голову, когда он исчезнет. Но я не могу заставить себя запускать большие производственные проекты на CTP-продукте с нулевой репутацией. Я начал играть с ним, хотя как только он набирает обороты, MemCached даже не сравнится для тех, кто заперт в мире окон! http://blogs.msdn.com/velocity/
Кэш .NET: Нет причин для скидки на стандартный кэш .NET. Он встроен и готов к использованию бесплатно и без необходимости (основной). Он предлагает гибкость, предлагая механизмы хранения элементов в локальной памяти, сервер состояния SINGLE или централизованную базу данных. Где Velocity работает, когда вам нужно больше одного сервера состояния (кэш в памяти) и не хотите использовать медленную базу данных для хранения кеша.
Блок Enterprise Application: Я держусь подальше от всех корпоративных приложений. Это тяжелые рамки, которые дают больше, чем я обычно требую! До тех пор, пока вы не забудете обернуть все, что касается кода, который не является вашим собственным, и следовать простым правилам кодирования, придерживайтесь любого другого метода над этим! (просто мое мнение, конечно, - MySpace использует как можно больше из Enterprise Application Blocks!)
Вам не нужно выбирать фронт! Я обычно создаю оболочку кэша, с которой я общаюсь в своем коде для таких методов, как Get, Set, Exists, Remove, ListKeys и т.д. Это затем указывает на базовый уровень абстракции кеша, который может указывать на кеш MemCached, Velocity или .NET. Я использую StructureMap (или выбираю другой контейнер IoC), чтобы ввести ту форму кеша, которую я хочу использовать для данной среды. В моем локальном блоке dev я могу использовать кеш .NET в сеансе. В производстве я обычно использую MemCached Win 32. Но независимо от того, как он настроен, вы можете легко поменять местами, чтобы попробовать каждую систему, чтобы увидеть, что лучше всего подходит для вас. Вам просто нужно убедиться, что ваше приложение знает как можно меньше о том, как вещи кэшируются! Как только этот слой абстракции находится на месте, вы можете делать такие вещи, как запустить алгоритм сжатия (gzip) для всех данных, которые поступают в и из кеша, что позволит вам хранить в 10 раз больше данных в кеше. - прозрачно.
Я расскажу об .NET Cache, MemCached Win32, StructureMap и соответствующих абстракциях в моей книге, если вы заинтересованы!
ASP.NET 3.5 Социальные сети (http://www.amazon.com/ASP-NET-3-5-Social-Networking-Enterprise- ready/dp/1847194788/ref = sr_1_1? ie = UTF8 & s = books & qid = 1225408005 & sr = 8-1) Эндрю Симер www.andrewsiemer.com blog.andrewsiemer.com www.socialnetworkingin.net
Обновление Изменена ссылка, в которой перечислены сайты с использованием memcached. Спасибо, Дэвид, заметив, что он сломан!