Я все время слышу о некоторых кешах PHP (кодов операций), таких как APC, XCache, Memcache, eAccelerator и т. Д.
Но я никогда не мог понять, как выбрать один. Помимо повышения производительности, которое должна обеспечивать система кеширования, следует обратить внимание на другие факторы.
Например, почему вы скажете, что система кеширования X лучше, чем Y? Меня меньше беспокоит относительный прирост производительности. Небольшие различия между любыми двумя системами имеют меньшее значение.
Если общий ответ на мой вопрос невозможен, вот несколько советов. Я использую выделенный VPS с Mediatemple (с root-доступом). Оперативная память составляет 512 МБ (физическая) + 400 МБ (своп). Меня беспокоит WordPress и его кузены WordPress-MU и BuddyPress. 90% наших кодов / сайтов относятся к семейству WordPress.
Заранее благодарим за помощь.
Перечисленные вами продукты служат разным целям.
Кеши OPCode
Есть много ускорителей PHP (OPCache), как показано на этом Список Википедии. Как это часто бывает с продуктами с открытым исходным кодом, все они довольно похожи. XCache - это ускоритель PHP lighttp, который выбирается по умолчанию при запуске этого HTTPd. Он также хорошо работает с Apache, однако APC, кажется, немного более «хорошо работает с другими» в социальном плане, официально поддерживается как часть PHP и выпускается одновременно с официальным дистрибутивом PHP.
Я отказался от usign eAccelerator из-за его медленной разработки и отставания от выпусков PHP и официального статуса, который APC предлагает с аналогичной производительностью.
Эти продукты обычно входят в комплект; без изменения кода мгновенное повышение производительности. С большими кодовыми базами (Drupal, Wordpress) производительность может достигать В 3 раза лучше при снижении времени отклика и использования памяти.
Кэширование данных
Memcache это немного другой продукт - вы можете думать о нем как о облегченная система ключевых значений это может быть масштабируется на несколько серверов. Программное обеспечение должно быть улучшено для поддержки Memcache, и оно решает одни проблемы лучше, чем другие. Если на вашем веб-сайте есть список текущих значений стоимости акций, вы можете использовать Memcache для хранения постоянного списка текущих значений, отображаемых на вашем веб-сайте. Вы можете использовать его для хранения данных сеанса для краткосрочного повторного использования. Вы бы не использовали его для других вещей, таких как полностраничные кеши, или в качестве замены MySQL.
Также существуют надстройки Wordpress, такие как WP-супер-кэш которые могут значительно улучшить производительность Wordpress (на самом деле, WP-Super-Cache во многих случаях может конкурировать со статическими сайтами на основе HTML)
Подводя итог - я настоятельно рекомендую APC, если вы хотите «установить и забыть, хорошо поддерживаемый продукт».
В stackoverflow был опубликован хороший ответ, который хорошо отвечает на ваш вопрос.
APC будет встроен в PHP6, так что это логичный выбор. Я использую его, и прирост производительности потрясающий. Если вам нужно кэшировать что-то, кроме кодов операций (например, результаты запросов к базе данных), вы также можете использовать APC для этого, но невозможно совместно использовать кеши APC между несколькими серверами. Если вам нужно кэшировать только на одном сервере, APC отлично подойдет. Если вам нужно масштабировать до нескольких серверов и вы хотите разделить кеш между ними, memcached твой мужчина.
Однако я бы сделал одно - создать класс-оболочку для любого кэширования (без кода операции), которое вы выполняете. Таким образом, вы можете заменить механизм кэширования, не меняя код.
Стоит отметить, что все немного изменилось, и кажется, что APC не будет включен в ядро PHP 6.
APC развивается медленно и, похоже, никогда не будет совместим с PHP 5.5. Из-за этого похоже, что ребята из PHP будут устанавливать расширение кэша опкодов Zend OPCache как расширение PHP CORE. Вам не все равно, подробнее здесь http://wiki.php.net/rfc/optimizerplus.
Важное примечание: Zend OPCache не имеет кеша пользовательских данных, как APC, поэтому, если вам нужен кеш пользовательских данных, вы можете использовать его вместе с Memcache.
Если вы используете PHP версии не ниже 5.50, лучше всего подойдет OpCache (собственная библиотека PHP / PECL). При установке из двоичного файла он должен быть предварительно скомпилирован.
http://php.net/manual/en/book.opcache.php
Если вы используете версию PHP до 5.5, APC (собственный кеш OpCode PHP / PECL) был бы самым простым выбором, хотя он считается не обслуживаемым и мертвым:
http://php.net/manual/en/book.apc.php
Использование встроенных функций OpCache PHP должно избавить вас от необходимости поддерживать сторонние библиотеки.
Memcache кэширует пары ключ / значение, а не коды операций. Вы можете использовать его вместе с одним из кешей опкодов.