Memcached против APC, который я должен выбрать?

Я прочитал эту статью: http://www.mysqlperformanceblog.com/2006/09/27/apc-or-memcached/ с пути назад, когда.. Я хочу получить лучший механизм кеширования, доступный для моего приложения действительно быстро. Конечно, я не хочу пере кешировать, но я хочу, по крайней мере, выбрать лучшее. В этой статье говорится, что Memcached медленный, и apc работает быстро, так почему каждый выбирает memcached?

http://framework.zend.com/manual/en/zend.cache.backends.html#zend.cache.backends.twolevels здесь говорится: "Используйте быстрый (но ограниченный), такой как Apc, Memcache... и" медленный "как File, Sqlite..." Как вы думаете, используя Apc как быстрый и Memcache, поскольку медленная идея - хорошая идея?

Ответ 1

Memcached - это распределенная система кэширования, тогда как APC нераспространяется - и в основном кеш-код операции.

Если (и только если) у вас есть веб-приложение, которое должно жить на разных веб-серверах (loadbalancing), вам нужно использовать memcache для распределенного кэширования. Если нет, просто придерживайтесь APC и его кеша.

Вы всегда должны использовать кеш opcode, который APC (также APC будет интегрирован в php6 iirc, поэтому почему бы не начать использовать его сейчас).

Вы можете/должны использовать оба для разных целей.

Ответ 2

Memcached, если вам нужно сохранить состояние на нескольких веб-серверах (если вы сбалансированы по нагрузке, и важно, чтобы то, что в кэше одинаково для всех серверов).

APC, если вам просто нужен доступ к быстрой памяти для чтения (& write) на сервере (или каждом).

Помните, что APC также может скомпилировать и ускорить время выполнения script. Таким образом, вы можете, например, использовать APC для повышения производительности, используя memcached для хранения кеша.

Ответ 3

Основным преимуществом APC является кеш операций. Поскольку PHP 5.5 интегрировал OpCache в свое ядро, а APC для PHP 5.4 по-прежнему отмечен как бета-версия, это не официальное выражение, но разработка APC будет прекращена в ближайшем будущем.

Поэтому я бы рекомендовал вам выбрать Memcached.

Ответ 4

Я использую оба для скорости, а другой - для синхронизации всех моих серверов. Если вы используете memcache, пожалуйста, помните о открытых портах, которые вам нужно будет заблокировать с помощью iptables.

Ответ 5

Привет, Томасхаф, надеюсь, что это не средство для вас поздно, но обратите внимание, что у APC есть некоторые проблемы, связанные с "кешем пользователя". Короче говоря, когда вы устанавливаете тайм-ауты для записей в кэше или если ваш apache падает внутри внутреннего кода APC (например, тайм-аут), вы можете столкнуться с некоторыми проблемами.

У меня есть запись о проблеме здесь: http://nirlevy.blogspot.com/2009/06/apc-futexwait-lockdown-make-your-apache.html, и вы также должны прочитать http://t3.dotgnu.info/blog/php/user-cache-timebomb.html (от одного из разработчиков APC, я думаю)

Ответ 6

Я использую только APC, поскольку APC является кешем кода и действует как memcache! Только 1 конфигурационный файл вместо 2.

И только 1 место для мониторинга обоих кешей.....

Ответ 7

Это зависит от того, что вы делаете, но для моих веб-сайтов drupal, работающих на VPS. Я считаю, что APC отлично работает! Если вы используете CentOS 6, он доступен в виде обновления yum, поэтому он прост в установке, а настройки по умолчанию не являются разумными. Нет проблем с имхо.