Автор Тема: Кэширование в CMS  (Прочитано 8996 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Кэширование в CMS
« : 26 Января 2006, 23:54:51 »
CMS на PHP+MySQL. Подскажите, пожалуйста, в каком направлении копать в вопросе кэширования.

Заранее благодарен за любую информацию.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Кэширование в CMS
« Ответ #1 : 26 Января 2006, 23:58:25 »
во-первых - при чём здесь CMS?
а если бы это был форум - то что, приципы кэширования отличались бы?

во-вторых, какое именно кэширование ты имеешь в виду? На уровне страниц или НТТР запросов?

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Кэширование в CMS
« Ответ #2 : 27 Января 2006, 00:19:53 »
Пользователь №1 посылает апачу HTTP-запрос на получение динамического документа. Апач передает запрос на обработку PHP, PHP лопатит базу, возвращает страницу апачу, апач - пользователю.
Пользователь №2 посылает апачу запрос на получение того же документа. Хотелось бы в этом случае знизить нагрузку на PHP и MySQL.
Это какое кэширование? На каком уровне?

Что касается принципов кэширования для форума. По идее, принципы должны отличаться в зависимости от степени персонификации контента.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Кэширование в CMS
« Ответ #3 : 27 Января 2006, 00:25:30 »
Цитировать
dub:
Это какое кэширование? На каком уровне?

не увидел в описанной схеме никакого кэширования.
только пожелание.
кэширование может быть на уровне запроса - если документ не менялся, то послать  304 Not Modified
а может быть на уровне страницы - просто отдаётся закэшированная страница.

Цитировать
dub:
По идее, принципы должны отличаться в зависимости от степени персонификации контента.

а чем отличается персонификация от любых других параметров запроса страниц?

слушай, а оно тебе вообще нужно - это кэширование?

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Кэширование в CMS
« Ответ #4 : 27 Января 2006, 00:34:32 »
Нужно. Если бы я абсолютно точно представлял себе суть вопроса, то, скорее всего, не обращался бы за помощью.
В общем-то ты прав. Пока, действительно, только пожелание.
Собственно, мне нужно нащупать направление реализации. И, собственно, ты хоть и бурчишь, а уже начинаешь мне помогать.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Кэширование в CMS
« Ответ #5 : 27 Января 2006, 00:40:22 »
ну, щупай-щупай...

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Кэширование в CMS
« Ответ #6 : 27 Января 2006, 01:41:30 »
Насколько я понимаю, делается примерно так.

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

Когда документ запрашивается в следующий раз, первым делом обрабатывается $_SERVER["HTTP_CACHE_CONTROL"] в соответствии с RFC 2616, Section 14.9, чтобы определить, есть ли у браузера кэшированная копия документа, и насколько она стара.
Если копия у браузера есть и она моложе даты последнего обновления - то возвращается header("HTTP/1.0 304 Not Modified").
Если копии нет или она устарела, выдается кэшированный код документа из кэш-таблицы.

При изменении документа, для которого в кэше уже есть копия, копия заменяется, дата обновляется. Если копии в кэше нет - то можно ничего не делать, пока документ не будет запрошен впервые (а вдруг он никому не нужен?).

Типа того?
« Последнее редактирование: 27 Января 2006, 02:20:09 от dub »

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Кэширование в CMS
« Ответ #7 : 27 Января 2006, 09:36:07 »
Цитировать
dub:
но и сохраняется в базе, в отдельной таблице с дополнительными полями,

ROTFLMAO!!!

нет, кэширование тебе, всё-таки, не нужно =))))

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Кэширование в CMS
« Ответ #8 : 27 Января 2006, 11:15:08 »
dub
1. HTTP
Чтобы использовать кеширование на уровне HTTP надо сначало при первой выдаче документа посылать правильные заголовки. Например Cache-Control,  ETag и Expires (подробности в RFC + была книга о кешировании от орейли)
Чтобы узнать есть кеш и какой он давности - If-Match / If-modified-since

2. Кеширование на стороне сервера обычно делается не в базе, а в файлах (или в memcache-е если можешь себе это позволить).
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Кэширование в CMS
« Ответ #9 : 28 Января 2006, 01:04:14 »
RomikChef
Насколько я понимаю, твоя гиперэмоциональная реакция связана с тем, что результат лучше сохранять в файле. Возникло у меня сегодня с утра сомнение по этому поводу, решил сначала почитать еще, а потом уже продолжить обсуждение.

Макс
Спасибо. Буду копать. Если возникнут более точные вопросы - задам.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Кэширование в CMS
« Ответ #10 : 28 Января 2006, 10:59:55 »
моя гиперэмоциональная реакция связана с убеждением, что кэширование тебе не нужно.

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Кэширование в CMS
« Ответ #11 : 28 Января 2006, 11:26:37 »
RomikChef
Нет, ты таки умеешь создать обстановку бесконечной доброжелательности.

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

Так что есть предложение не переходить на перебранку. Если есть что возразить или добавить по существу вопроса (кроме "существо вопроса тебе не нужно") - буду рад.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Кэширование в CMS
« Ответ #12 : 28 Января 2006, 11:30:07 »
Удовольствие я получаю всегда только одно.
Когда вопрос, на который я отвечаю, имеет смысл. СМЫСЛ. Не высосан из пальца "а хорошо бы построить мост - отсюда, и до самой Москвы...", а основан на конкретной задаче, причём автор хорошо себе её представляет.

В данном случае мы имеем маниловщину.
то есть, автор мало того ,что тратит своё время - так ещё и на чужое зарится, задавая бессмысленные вопросы на форуме.

Впрочем, 90% вопросов на форумах именно такие. Поскольку имея минимальный уровень интеллекта, на любой вопрос пожно найти ответ самостоятельно

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Кэширование в CMS
« Ответ #13 : 28 Января 2006, 11:52:18 »
Цитировать
RomikChef:
на любой вопрос пожно найти ответ самостоятельно

Согласен абсолютно. В моем представлении назначение форума в частности состоит в том, чтобы более опытный мог - по собственной воле, заметь - сузить область поиска менее опытному.

В данном случае начальная область моего поиска настолько широка, что вызывает у тебя раздражение. Что ж, буду работать над ее сужением. Надеюсь, степень осмысленности вопросов также будет расти.

В общем, спасибо в любом случае.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Кэширование в CMS
« Ответ #14 : 28 Января 2006, 13:12:01 »
как ты уходишь от основного вопроса - уж на сковородке позавидовал бы

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28