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, поэтому он прост в установке, а настройки по умолчанию не являются разумными. Нет проблем с имхо.