2013-06-02 3 views
0

Я немного запутался здесь.Какая система кэша эффективна в жизненном цикле php?

Я знаю, что для каждого запроса PHP все приложение загружается снова и снова.

Учитывая это, как можно эффективно использовать кеш, если все глобальные переменные перезагружаются для каждого запроса?

Например:

Пользователь называет URI/пользователь/просмотр/123. Пользователь 123 загружается из базы данных и сохраняется в $ user.

Зачем вам кэшировать содержимое $ user - когда вам просто нужно обратиться к переменной, чтобы получить содержимое?

Я пропустил пункт?

Спасибо,

ответ

2

больше как кэширование изображений, общая база данных querys

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

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

+0

Другой тип кэширования для PHP - это кеширование полукомпилированного кода. Это позволяет избежать перекомпиляции кода PHP для каждого запроса. См. Этот ответ: http://stackoverflow.com/a/5377415/1180785 – Dave

0

Как всегда, изображение стоит тысячи слов, вот это :)

enter image description here

(source)

Как вы можете видеть, вы загрузите некоторые PHP librairies (как основной (Globals, Requests, Cookies и т. д.), но не все (в данном случае Security, Application, различные библиотеки, Views).

Вы пропускаете то, что может быть кэшировано;)

+0

, хотя я думаю, что часть безопасности должна быть до перехода к кешированию: P –

+0

Диаграмма относится только к полному кэшированию страниц - это не самый общий, или в большинстве случаев наиболее подходящим. – AD7six

+0

Я знаю, но это пример. есть способ кэшировать что-то (черт возьми, даже говоря, что это слишком широко). Вы можете кэшировать всю страницу (например, пример, который я дал), чтобы кэшировать только sql-запросы (например, еще больше непосредственно в базе данных). –

Смежные вопросы