Вот элементы, которые я рассматриваю для темы Кеширования:
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 Cache: Нет оснований для дисконтирования стандартного .NET Cache. Он встроен и готов к использованию бесплатно и не требует (основной) настройки. Он предлагает гибкость, предлагая механизмы для хранения элементов в локальной памяти, на одном сервере состояний или в централизованной базе данных. Velocity вступает в действие, когда вам нужно более одного сервера состояний (кеш в памяти) и вы не хотите использовать медленную базу данных для хранения кеша.
Блок корпоративных приложений: Я держусь подальше от всех блоков корпоративных приложений. Это тяжелые рамки, которые дают больше, чем я обычно требую! Пока вы не забываете оборачивать все, что касается кода, который вам не принадлежит, и следовать простым правилам кодирования, придерживайтесь любого другого метода, кроме этого! (конечно, только мое мнение - MySpace использует как можно больше из блоков корпоративных приложений!)
Вам не нужно выбирать заранее! Обычно я создаю оболочку кэша, с которой я общаюсь в своем коде, для таких методов, как Get, Set, Exists, Remove, ListKeys и т. Д. указывает на базовый уровень абстракции кэша, который может указывать на кэш MemCached, Velocity или .NET. Я использую StructureMap (или выбираю другой контейнер IoC), чтобы ввести, какую форму кэша я хочу использовать для данной среды. В моем локальном окне разработчика я мог бы использовать кеш .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. Спасибо, Дэвид, за то, что заметил, что он сломан!