Разница между Memcache, APC, XCache и другими альтернативами, о которых я не слышал

на работе мы недавно начали разрабатывать приложение для меня "большого масштаба" (мы разрабатываем потенциал для обслуживания многих миллионов просмотров в день). Один из старших разработчиков и сисадмин настроили memcache на сервере.

Как я понимаю, Memcache будет хранить результаты запросов и определенные таблицы в памяти в течение X времени и хранить все hunky dory.

недостатком memcache кажется то, что я просто не могу для жизни мне удается настройте его в моей локальной среде разработки. Я следил за несколькими различными инструкциями о том, как скомпилировать его для себя. Большинство, если не все шаги, кажется, работают правильно, но получить эту ошибку на PHPLoad:

 [11-Sep-2010 16:02:30] PHP Warning:  PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so' - dlopen(/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so, 9): image not found in Unknown on line 0  

Не основной вопрос, но incedentally, если вы смогли скомпилировать Memcache для MAMP 1.9 на Snow Leopard, пожалуйста, дайте мне знать трюк.

мой основной вопрос о том, что различия между различными веб-кэширования технологии. Я видел упоминание о Memcache, APC и Xcache (здесь:кэшировать результаты запроса mysql вручную в txt-файл), но не знаю плюсов, минусов и различий между ними.

на мой взгляд, Memcache имеет преимущество быть тем, что ведущий разработчик проекта и наш системный администратор выбрали. У него есть минус быть полным foobar, чтобы попытаться настроить и скомпилировать на Mac. :-^)

любой, кого я хотел бы услышать от любого, кто можно перечислить плюсы и минусы каждой (или даже одной) другой технологии cachine. Где они лучше всего используются, как они лучше всего используются. И так далее.

это вся полезная информация, я думаю.

большое спасибо за предоставление вашего времени для расширения моих знаний. - Алекс.

2 ответов


во-первых, список кэшеры кодов операций для php.

второй Memcache / MemcacheD не является Кэшером кода операции. Это система кэширования распределенной памяти. Она не улучшает скорость/производительность вашего PHP-кода. Его можно использовать только для хранения данных.

APC, EAccelerator, XCache и другие не распределены, то есть вы можете хранить данные только на локальном веб-сервере. Однако все они являются кэшерами кодов операций и могут повысить производительность вашего PHP-приложения. Большинство, за исключением EAccelerator (в текущей версии) также может хранить данные.

Я обычно выбираю APC для кода операции cacher (он, как сообщается, будет включен в ядро PHP 6). Однако, если у меня также есть более одного веб-сервера для сайта, я также буду использовать MemcacheD.


изменить 1 Я согласен, что очень раздражает настройка APC, Memcache на MAMP. Однако есть учебники, касающиеся такие.


Изменить 2 также в отношении лучшего кода операции Cacher для вашего приложения действительно зависит от того, какой сервер вы используете. Некоторые лучше работают на некоторых системах. Это также зависит от размера и масштаба вашего приложения относительно того, как работают кэшеры.


редактировать 3 очень интересно статью о сравнении производительности нескольких разных cachers. (Эта статья кажется написана в 2006 году и не очень используется для текущей ссылки)


APC-это кэш кода операции. Он будет хранить анализируемый PHP-код, так что каждый раз ваши PHP-файлы не нужно анализировать.

Memcache-это кэш данных. Он будет хранить данные как пару ключевых значений.