Нужно ли добавлять Memcached / APC для написания кодов еще раз?

Я планирую добавить APC или MEMCACHED в свой PHP-код! мой вопрос в том, требуется ли переписать весь код? как я смотрел в PHP Manual, и там я получил это!

function get_foo(foo_id) foo = memcached_get("foo:" . foo_id) return foo if defined foo foo = fetch_foo_from_database(foo_id) memcached_set("foo:" . foo_id, foo) return foo end 

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

Я понятия не имею о APC / Memcache, поэтому любое обсуждение этого приветствуется

С APC вы сначала получаете кеш-код операции – для этой части вам нечего изменять в коде: просто установите расширение и включите его.

Кэш опкодов, как правило, ускоряет работу: он предотвращает компиляцию скриптов PHP снова и снова, сохраняя коды операций – результат компиляции файлов PHP – в памяти.

Затем APC и memcached позволяют хранить данные в памяти; Как правило, это используется для кэширования результатов длительных / дорогостоящих операций (таких как сложные SQL-запросы, вызовы веб-сервисов, …) .

Об этом нет никакой магии: вам придется немного закодировать, хранить данные в кеше и извлекать их из нее – выполнять длинную / дорогостоящую операцию, если данные не находятся в кеше или срок действия кеша истек.

Вот несколько вопросов / ответчиков, которые могут получить дополнительную информацию:

  • Каков самый простой способ кэширования кода операции с PHP / Apache?
  • Что такое кеш байт-кода и как его использовать в PHP?
  • Насколько эффективнее php_apc, чем memcached?

Сначала вы получите повышение производительности только для установки APC. Когда скрипт выполняется, он запускается через Zend_Compile, который превращает ваш PHP-код в OPCODES, который затем запускается через Zend_Execute для запуска. Процесс превращения PHP в OPCODES идентичен каждый раз, когда загружается страница, поэтому делать это снова в следующий раз – это отходы. APC (Alternative PHP Cache) сохраняет эти коды операций в памяти, поэтому в следующий раз он может пропустить этот шаг и ускорить загрузку страницы.

Когда дело доходит до кэширования в вашем скрипте, вам нужно будет внести некоторые изменения. Вы можете делать эти изменения постепенно с течением времени, получая немного больше производительности каждый раз, поэтому вам не нужно беспокоиться о том, чтобы делать все сразу. Если у вас есть один сервер, я бы использовал APC, если у вас может быть несколько серверов в будущем, я бы пошел с Memcache.

Низкие висячие фрукты для улучшения производительности:

  • Найти вещи, которые загружены много, как и ваша домашняя страница. Перезапишите этот контроллер с дополнительной функцией, которая проверяет, есть ли данные в кеше, и использует его, если он доступен. Если нет, загрузите его по-старому и сохраните в кеше. Помните, что вы можете помещать массивы и объекты в обе эти хранилища данных, поэтому это должно быть довольно быстро сделать.
  • Посмотрите на запросы к базе данных, которые занимают много времени, а также кешируйте их.
  • Найдите другие кэшированные вычислительные затраты, которые будут сильно зависеть от вашего конкретного приложения.