Другие языки программирования и технологии
Кеширование страниц на PHP
задумался о кешировани страниц, средствами пхп что напридумывал мой i7 (фактическая производительность Pentium D Радость ) брать то что будет выводится в браузер и записывать в хтмл файл, именовать md5 хешем самого файла, далее проверка времини существования файла, если больше то перезаписываем, а меньше выводим но теперь трудность если контент на странице изменится, то и изменится ее md5, как быть с теми файлами кеша которые не пригодны уже??? да и в принцепе верен ли мой подход к кешированию??? еще одно, кешируя страницы в файл придется на папку устанавливать права 777, а тут могут возникнуть проблемы безопасности как вариант кеширование в таблицу мускуля, но ту увеличивается количество запросов в том случае если кеш устарел и что делать или я не прав по поводу прав доступа к паке??? и вот на последочек... как обходится с тем что не должно кешироваться, к примеру, какие либо определенные модули страницы
>> брать то что будет выводится в браузер и записывать в хтмл файл, именовать md5 хешем самого файла, далее проверка времини существования файла, если больше то перезаписываем, а меньше выводим
Угу, рано или поздно ты так всю базу тогда вытащишь.
Вот наивная реализация:
пришел запрос - создать страницу и сохранить
пришел следующий запрос - отдать созданную страницу если она еще валидна
изменилось состояние данных - пометить страницы, зависящие от измененных данных невалидными
Хотя на самом деле это надо бы делать между представлением и, собственно, данными.. .
>> да и в принцепе верен ли мой подход к кешированию?? ?
Обычно самым узким и нераспараллеливаемым местом являются реляционные БД. Кеш нужен прежде всего для того, чтобы не обращаться лишний раз к базе. А непосредственно генерация, по сути, не стоит ничего.
Угу, рано или поздно ты так всю базу тогда вытащишь.
Вот наивная реализация:
пришел запрос - создать страницу и сохранить
пришел следующий запрос - отдать созданную страницу если она еще валидна
изменилось состояние данных - пометить страницы, зависящие от измененных данных невалидными
Хотя на самом деле это надо бы делать между представлением и, собственно, данными.. .
>> да и в принцепе верен ли мой подход к кешированию?? ?
Обычно самым узким и нераспараллеливаемым местом являются реляционные БД. Кеш нужен прежде всего для того, чтобы не обращаться лишний раз к базе. А непосредственно генерация, по сути, не стоит ничего.
Алексей )))))))))))
в принципе это то что описал я, но как быть с теми данными которые нет нужды кешировать, скажем есть пользователи и их страницы с профилем не надо кешировать, но на странице, помимое личныхданных профиля есть еще много чего, скажем меню разделов выводимое из базы, как быть в такой ситуации???
Если страница статическая, то кешировать не надо, тем более, применять пхп.
Подход верен, но это делается автоматом. Вы изменяете PHP файл, затем пхп транслятор его один раз транслирует и использует результат до тех пор, пока вы снова не измените файл. Это и есть Ваш метод кеширования =). Настраивается в файле php.ini. Настроек там куча.
Кешировать вручную в папки точно не стоит.
В общем, пхпм сам кеширует. То, что может быть закешировано, кешируется автоматически. То, что не должно - выполняется из предварительно транслированного кода. С этим проблем нет.
Если занимаетесь нагруз-проектом, позаботьтесь о кешировании данных из БД. Обычно, это самая затратная часть, которую как раз нужно кешировать. Погуглите утилиту memcached.
Подход верен, но это делается автоматом. Вы изменяете PHP файл, затем пхп транслятор его один раз транслирует и использует результат до тех пор, пока вы снова не измените файл. Это и есть Ваш метод кеширования =). Настраивается в файле php.ini. Настроек там куча.
Кешировать вручную в папки точно не стоит.
В общем, пхпм сам кеширует. То, что может быть закешировано, кешируется автоматически. То, что не должно - выполняется из предварительно транслированного кода. С этим проблем нет.
Если занимаетесь нагруз-проектом, позаботьтесь о кешировании данных из БД. Обычно, это самая затратная часть, которую как раз нужно кешировать. Погуглите утилиту memcached.
Похожие вопросы
- Как вывести текст на страницу через php??
- страница-заставка сайта на php
- Не выходит получить страницу с помощью cUrl PHP .
- Как в PHP сделать так что-бы обновлялось содержимое HTML-страницы? (Подгрузка содержимого без обновления страницы)
- Правда ли что закрывающий тэг для php "?>" не рекомендуется ставить в конце страницы?
- С какого языка начинать изучения программирования Pascal/PHP/Python?
- SQL и PHP. Access denied for user 'u3464476869_vid'@'12.3.4.23' to database 'u3464476869_Hyp'
- Подскажите, какой код нужно вбить чтобы работал в программе скроулер. Пишу прогу на PHP, а страница не прокручиваеться.
- Чем отличается PHP-код, необходимый для PHP-Launcher от кода для PHP Devel Studio?
- Вопрос по PHP