Как реализовать кеш HTML для сайта PHP?

php html caching

7632 просмотра

8 ответа

1694 Репутация автора

Каков наилучший способ реализации кэша для сайта PHP? Очевидно, есть некоторые вещи, которые не следует кэшировать (например, поисковые запросы), но я хочу найти хорошее решение, которое поможет избежать «эффекта digg».

Я знаю, что есть WP-Cache для WordPress, но я пишу собственное решение, которое не построено на WP. Я заинтересован либо в написании собственного кэша (если он достаточно прост), либо вы можете указать мне на хороший, легкий фреймворк. Я не очень хорошо знаю Apache, поэтому, если бы это был PHP-фреймворк, он бы лучше подходил.

Благодарю.

Автор: different Источник Размещён: 10.09.2008 08:20

Ответы (8)


7 плюса

694 Репутация автора

Лучший способ - использовать прокси-кеш (Squid, Varnish) и обслуживать соответствующие заголовки Cache-Control / Expires вместе с ETags: полное руководство о том, как работают кэши и как вы можете получить их, см. В руководстве по кэшированию Марка Ноттингема. производительность вне кеширующего прокси.

Также проверьте memcached и попробуйте кешировать ваши запросы к базе данных (или, что еще лучше, предварительно обработанные фрагменты страницы).

Автор: argv0 Размещён: 10.09.2008 08:26

16 плюса

548 Репутация автора

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

Автор: Pedro Размещён: 10.09.2008 08:32

1 плюс

228 Репутация автора

Кажется, вы ищете фреймворк PHP-кеша. Я рекомендую вам систему шаблонов TinyButStrong, которая поставляется с очень хорошим плагином CacheSystem. Это простой, легкий, настраиваемый (вы можете кэшировать любую часть html-файла), очень мощный ^^

Автор: TiTi Размещён: 10.09.2008 09:35

2 плюса

18650 Репутация автора

Шаблонный движок PHP Smarty ( http://www.smarty.net ) включает в себя довольно продвинутую систему кеширования.

Вы можете найти подробности в разделе кеширования руководства Smarty: http://www.smarty.net/manual/en/caching.php

Автор: georgebrock Размещён: 10.09.2008 11:34

4 плюса

32869 Репутация автора

Я бы порекомендовал Memcached или APC . Оба являются решениями для кэширования в памяти с простейшими API и множеством библиотек.

Проблема с этими двумя в том, что вам нужно установить их на ваш веб-сервер или другой сервер, если он Memcached.

APC

Плюсы:
  • просто
  • Быстро
  • Ускоряет выполнение PHP также
Cons
  • Не работает для распределенных систем, каждая машина хранит свой кэш локально

Memcached

Плюсы:
  • Быстрая (МОГ)
  • Может быть установлен на отдельный сервер для использования всеми веб-серверами
  • Проверено, разработано в Живом Журнале
  • Используется всеми большими парнями (Facebook, Yahoo, Mozilla)

    Минусы:
  • Медленнее, чем APC

  • Возможная задержка в сети
  • Немного больше конфигурации

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

На самом деле вы можете кешировать поисковые запросы, даже от нескольких секунд до минуты. Если ваша база данных не обновляется чаще, чем несколько раз в секунду, некоторая задержка будет в порядке.

Автор: Ryan Doherty Размещён: 12.09.2008 05:31

1 плюс

26880 Репутация автора

Простое кэширование страниц или частей страниц - класс Pear :: CacheLite. Я также использую APC и memcache для разных вещей, но другие ответы, которые я видел до сих пор, касаются более полных и сложных систем. Если вам просто нужно сэкономить усилия на перестройке части страницы - Cache_lite с хранилищем с файловой поддержкой вполне достаточно и очень прост в реализации.

Автор: Alister Bulman Размещён: 13.09.2008 12:24

0 плюса

2153 Репутация автора

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

Возьмите источник и прочитайте документацию.

Автор: chrisntr Размещён: 13.09.2008 01:25

7 плюса

6652 Репутация автора

Решение

Если о кеше прокси не может быть и вы предоставляете полные HTML-файлы, вы получите лучшую производительность, полностью обойдя PHP. Изучите, как работает WP Super Cache .

Некэшированные страницы копируются в папку кеша с такой же структурой URL, как и у вашего сайта. При последующих запросах mod_rewrite отмечает наличие кэшированного файла и обслуживает его. другие директивы RewriteCond используются для того, чтобы пользователи, вошедшие в систему / зарегистрированные пользователи, могли видеть живые запросы PHP, но большинство посетителей будут обслуживаться Apache напрямую.

Автор: Steve Clay Размещён: 15.09.2008 02:34
Вопросы из категории :
32x32