Задать вопрос

PHP — как сделать толковый кэш?

Задача

Есть сайт — новостная лента. Двиг — самописный, PHP + MySQL. В данный момент с каждым посещением страницы информация формируется из БД.


Срочно надо перейти с динамики на статику.

То, как я придумал это сделать
  • При первом посещении странички c id=1500 — содержимое берется из БД и записывается в файл cache/1500.html. Делается с помощью ob_start().
  • При повторном посещении этой странички — смотрим дату создания файла 1500.html, если дата меньше 15 минут от тек. времени, инклудом выводим 1500.html. Если больше 15 минут — снова берем из БД и перезаписываем файл.


Вопросы
1. Комментарии к новостям. Получается, при добавлении нового комментария необходимо будет убивать файл 1500.html? Сайт живой, комментов много. Вот не знаю, я хард не задолбаю такими запросами?

2. Статистика количества просмотров новости. При каждом посещении продолжать делать «UPDATE `views` = `views` + 1» или может есть какое-то другое решение? А то выходит не до конца статика получится, если будут постоянно запросы в БД улетать.


Поделитесь, пожалуйста, мыслями по поводу такой реализации. Может кто-то уже внедрял что-то подобное, какие могут возникнуть проблемы? Может сущетсвуют подводные камни, о которых я пока не подозреваю?
  • Вопрос задан
  • 9544 просмотра
Подписаться 12 Оценить 1 комментарий
Ответ пользователя holyorb2 К ответам на вопрос (9)
holyorb2
@holyorb2
Чем вызван переход на статику?
Если нагрузкой на сервер, то нужно усилять сервер а не сайт рубать, хотя одно другому не мешает.

И как много комментариев пишут? Если комментируют в день не более 10% статей, то пересоздания кеша будет нормальным выходом из ситуации
Ответ написан