Jump to content
  • 0

Кэширование


mario
 Share

Question

Доброго времени суток, ув.форумчане!

Сообственно к вам с вопросом о кэшировании.

Мне не совсем понятна грань где идет кэширование БД(и когда оно нужно), кэширование php-скриптов(тут я даже и не пойму не чего... как это делается), кэширование-хтмл вот тут у меня догадка что кэширование хтмл это результат кэширование php?

Сообственно как кэшировать БД, и php-скрипты

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

wsh про БД не это думал... просто погуглив, нечего вразумительного не нашел... :(

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

Veseloff кэширование делается для уменьшение нагрузки на сервер БД и на сервер апач, так наверное надо было выразиться?

PS а вопрос мой состоит в том, как это организовать, и при каких ситуациях надо?

PSS просто щас весь вечер читал, и уже понял более четче... ну все равно не могу найти инфы поподробнее... можете ткнуть "носом"... :(

Link to comment
Share on other sites

  • 0

UPD: Про БД выяснил окончательно, там происходит не кэширование а оптимизация, айм сори - нуб.

Про php тут всё теперь стало ясно, происходит кэширование(раньше было кэширование всей страницы) теперь только нужных нам блоков. Кэш происходит путем одноразовой обработки скрипта в определенный интервал времени, и создания файла в хтмл формате, т.е. готового хтмл без пхп и обращений к бд.

Вот так вот. А теперь может есть у кого то решение, вариантов нашел массу, вот сижу разбираюсь...

Link to comment
Share on other sites

  • 0
Кэш происходит путем одноразовой обработки скрипта в определенный интервал времени, и создания файла в хтмл формате, т.е. готового хтмл без пхп и обращений к бд.

А смысл? У вас настолько большой скрипт, что выполнение его занимает кучу времени? Тогда запускайте его кроном во время, когда нагрузка на сервер минимальна и этим скриптом создавайте html файл - в принципе нормальный вариант.

Link to comment
Share on other sites

  • 0

Зачем HTML-файл создавать? Вот в Smarty для кэширования создается специальная копия PHP-файла и отдается пользователю без обращения к БД. Условия кэширования можно гибко задавать.

Link to comment
Share on other sites

  • 0

Vlad я что то не понял, как это пхп файл без обращений к БД? там может быть происходит просто проверка времени жития кэша, и в результате этой проверке он грузит кэш или же сново вызывает скрипт генерирует кэш и грузит кэш? Разъясните плз... Смарти не всегда удобно использовать, бывает это слишком большой шаблонизатор для маленкой задачи.

Veseloff ну мне кажется что когда слишком много скриптов, и очень частые запросы к БД, то кэширование очень выручит... ну это моё имхо. Да потом зачем нагружать БД и сервер апач, когда статичный материал, который меняется очень редко, легче и в разы быстрее отдовать как готовую хтмл страничку? неужели я не прав?

Link to comment
Share on other sites

  • 0

Для каждого файла в Smarty можно установить время жизни кэша. При обращении к PHP-файлу происходит несколько вещей:

- проверяется, есть ли кэшированная копия;

- не вышло ли время кэша;

Если файл есть и время жизни кэша еще не вышло, то загружается специальный кэшированный файл, который утрированно представляет собой статичный HTML-файл. В противном случае происходит выполнение PHP-файла со всеми запросами к БД и др. Так что кэширование существенно позволяет сократить нагрузку на сервер. Разумеется, надо учитывать специфику сайта, на некоторых кэш надо отключать.

Link to comment
Share on other sites

  • 0

Vlad, Smarty конечно очен гибкий в настройках ихороший шаблонизатор, но с этими копиями (кэшем) файлов у меня пару раз возник небольшой конфуз. Дело в том, если локально править через например дримвьювер, то все нормально, измененный шаблонный файл .tpl нормально сохраняется и при этом изменяется его двойник в папке templates_c (его кэш .php). А вот в интернете через Far например правишь шаблон, а его кэш файл не меняется и получается что правил, что нет..., при обращении к .tpl он загружает старый файл из templates_c. Как с этим бороться?

Link to comment
Share on other sites

  • 0

Бороться с этим легко. Надо установить при описании Smarty

$smarty->compile_check = true;

Тогда будет проверяться, обновился файл шаблона или нет. При обновлении перестраиваются соответствующие файлы, в том числе и кэша.

Link to comment
Share on other sites

  • 0
У вас настолько большой скрипт, что выполнение его занимает кучу времени?
А если предположить, что общение с базой данных идёт через узкий канал? Не у всех же БД находится на том же хосте, что и скрипт.
Link to comment
Share on other sites

  • 0
Бороться с этим легко. Надо установить при описании Smarty

$smarty->compile_check = true;

Тогда будет проверяться, обновился файл шаблона или нет. При обновлении перестраиваются соответствующие файлы, в том числе и кэша.

Спасибо.

А где это прописать?

Залез в папку smarty, нашел там файл smarty_compiler.class.php и файл конфиг, но подобных строчек там нет...

Edited by rus
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy