И то верно, можно сделать так, пользователь модифицирует страницу, и тем же скриптом, будет убивать кэш, т.е он нажимает кнопку сохранить, выполняется удаление кэша, и обновляется бд.. как я понял.
На счет 4 пункта
Сдесь очень важно для меня, а особенно для гуглбота.. - я вот щас пытаюсь понять как это все работает в плане заголовков, как все есть без кэша и как с кэшем.. т.е мне нужно провести детальный анализ заголовков или каких то его частей.. пока в недоумении - рассеяности..
Просто не хочу что бы гуглбот ел старые печеньки вместо новых.. или еще хуже ел и те и другие.. в итоге возникнет много проблем в плане сео.. потом..
Щас пока хочу понять что нунжо для правильной работы хидеров что отдавать и за чем следить
Смотрю сдесь разработчиков тьма, 😂 (п.с - разработчиков дорвеев 😂)
Вообщем не много все странно, может я плохо искал..
Но, все статьи которые я находил, идут все как то поверхностно...
К примеру, по использованию мною приведенного примера, простого кэша..
Я не нашел ниодной статьи где бы был приведен код пхп кэша, его откладка, и вся функциональность,
К примеру что можно делать что не желательно делать, что не нужно делать...
Допустим мой выше приведенный кусок кода,
Мение простых примеров я не нашел, в том плане,
1.Использовать MD52.Использовать подпаки - и почему ?3.Сверять даты - (ну допустим контент обновился сверяется дата модификации и заменятеся - если что то было изменено)4.Отслеживаех и отдаем правильные хидеры
ПОЧЕМУ ЭТОГО НЕТ НИГДЕ ? )
Вот что бы так с простого по полочкам... сам я пока не могу написать статью.. потому что сам пока в аспекте изучение.. но с временем серфинга понимаю что многие не доводят дело до конца либо используют сторонние решение (чужие классы и т д т п ) либо это какой то сверх секрет...
Почему я так подхожу к этому делу ?
А потому что если я нормально не раберусь с кэшем, и введу проэкт в действие т.е кэш, и вдруг что то не так пойдет, гугл бот сьест отравленное печенье, а потом докажи ему что ты не хотел его травить и что он видит одно а там совсем другое 😂 и все потому что ты отдал ему печенье старое вместо свежего ... ну как то так ну там уже углублятся не будем во взлеты и падение.. из за такой вот модификации... с кешем.
На данный момент задача модифицировать скрипт,
<?php // мониторим скорость выполнения $start = microtime(true); // задаем время жизни кэша в секундах $cacheTime = 60; // Название скрипта $fileName = strrchr($_SERVER***91;"SCRIPT_NAME"***93;, "/"); // удаляем все слеши $fileName = trim($fileName, '/\\'); // путь для хранения кеша $cacheFile = "cache/$fileName.cache"; // если кэш существует if (file_exists($cacheFile)) { // проверяем актуальность кеша if ((time() - $cacheTime) < filemtime($cacheFile)) { // показываем данные из кеша echo file_get_contents($cacheFile); // мониторим скорость работы echo 'Время выполнения скрипта: '.(microtime(true) - $start).' сек.'; exit; // Завершаем скрипт } } // открываем буфер ob_start();?> <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Test cache</title> <meta http-equiv="content-type"content="text/html; charset=utf-8" /></head><body><?php // для теста $arrayTest = array(); for ($i=0; $i < 10000; $i++){ $arrayTest***91;$i***93; = $i; } foreach($arrayTest as $i){ echo $i; }?></body></html> <?php // Открываем файл для записи $file = fopen($cacheFile, 'w'); // сохраняем все что есть в буфере вфайл кеша fwrite($file, ob_get_contents()); // закрываем файл fclose($file); // выводим страницу ob_end_flush(); // мониторим скорость работы echo 'Время выполнения скрипта: '.(microtime(true) - $start).' сек.';?>
1.Сделать MD52.cache/Сделать подпаки3.Сверять даты .. (сверят дату, и заменят, обновлять кэш) - сдесь не знаю как пока это сделать4.Отдавать правильные заголовки (сдесь пока тоже не знаю как сделать) - но думаю заголовки можно смотреть в http header плагине, ну или софте анализер..
Т.е мне нужно четко все отладить проверить и уже потом запускать..
Ну кто поможет чем сможет :)
1.К примеру мы имеем 90к постов
2.80к из них просто генерируются (не изменяются пользователями, ничего, просто генерируются с бд)
Я хотел просто эти 80% - закешировать, т.е выше приведенным кодом, просто сделать кеш на сервере в папке, и все, т.е они будут отдаватся с кеша.? (Или я не прав?) тем самым экономить на запросах к бд, т.е зачем тянут старые посты с бд, если они как бы статичны и не изменимы ? но них есть трафик.
На счет выяснить нагрузку, я знаю страницы которые делают нагрузку, но не знаю как ее пока что оптимизировать так как я таким раньше не занимался, я щас читаю мануалы, смотрю софт по выявлению узких мест, пытаюсь понять как это можно сделать проверить.. ну всегда есть первый раз и ошибки и так далее.. так как эта область мне не очень понятна пока что.---------- Добавлено 17.05.2014 в 10:25 ----------
Ну исходят из того что я изучил, за два дня, я составил более мение план оптимизации..
1.GZIP
2.CACHE - (Хидер - Футер - и пока еще не знаю старые посты..)
3.СSS COMPRESSION
4.JS COMPRESSION
5.MYSQL QUERIES
Ну пока что все, еще буду изучать - на счет ngnix+php+apache
Просто дело в том что, трафика может быть и больше, но проблема в том, что все падает, и меня это как бы расстроивает, вот и решил занятся подводными камнями. (Нужно знать самому эту область) так как зависить от кого то пока не мой вариант.. :)
Просто что бы дальше идти, в том плане, переход на vps - потом на dedicated ну вообщем по нарастающей.. нужно хотя бы начать с малого это делать..
И еще вопрос -
1.Лучше делать кэширование на стороне клиента или на стороне сервера - какие приимущества у того или инного метода ? (а то что то я не могу найти)
Вообщем решил проверить заголовки, вроде нет там nginx.
Так что придется пока что PHP, обходится, но вопрос не в этом !
Вопрос в том стоит ли кэшировать или не стоит - посты ?
И еще что нужно учитывать - на счет ботов ? - а то вдруг что то пойдет не так, боты сьедят то что не нужно и потом будет билебирда и сайт будет трясти в выдаче потому что менятся все будет ...
На счет ngnix - спасибо - учту при переходе на vps - почитаю что да как устанавливать и есть ли там такая возможность или уже есть встренный.. - посмотрел у конкурентов у половины стоит ngnix..
Просто я в этой области не силен, вот приходится изучать все аспекты и все учитывать.. так как если переходить на VPS то это целое дело :)
Сайт хостится на обычном хосте - с еще несколькими. / на linux
Дело в том, что посещаемость сайта, пока что средняя, из за того что идет большая нагрузка на бд при не очень большом количестве трафика, трафика могло бы быть и больше, но падает бд, в итоге, щас оптимизирую сайт как могу, потом думаю перейти на vps
1- около 80% не динамического контента выводится юзерам (это и есть те самые посты)
Получается их отображение связанно с БД - так как они оттуда генерируются.
Естесвенно я задал себе вопрос, а что если их кэшировать ? они все равно в 90% не изменяются. т.е лежат как устаревшие но тянут трафик. (то зачем их каждый раз дергать ?) Или я не прав ? В постах нет ни каких бб кодов, работа сайта такова, (это сайт обьявлений ну почти)
1 - Юзер заходит на сайт
2 - Юзер публикует статью
3 - Юзер может иногда менять параметры статьи (это редко происходит, поправка там еще что)
4 - Вообщем то и все.
Вот и хочу понять как лучше сделать так, что бы снизить нагрузку на бд, и ускорить сайт, те категории которые постоянно обновляются я не стал кэшировать ( к примеру когда мы нажимаем в меню, Рецепты, (то нам выводится по 10 шорт постов) (вот это я не стал кэшировать так как в любой момент кто то может добавить новый рецепт блюда) ну вот и все, т.е то что изменяется я не кэширию а то что статично само по себе кэширую (но главный вопрос теперь кэшировать посты или нет..) так как все они тянутся с бд
Еще вопрос,
Что делать с 90к постами ? они в принципе статические, то можно их кешировать или нет ? каждый день примерно по 50 постов добовляется.. - просто интересно на счет места на диске - ну или не будет ли это все дело нагружать хардиск - систему как то - ?
Просто оптимизация бд - это одно, но если статических постов много то почему бы их не кэшировать ? но как то нужно придумать что кэшировать а что нет.. и сделать это правильно, я думаю тем куском скрипта что выше пропробовать кэшировать посты, но вот как отразится это на самом пк пока не знаю -
Что посоветуете ?
Я сделал так, в к названию страницы кеэша, просто прикрепил название города, а городов одинаковых как бы нет, в итоге у меня в кеше получается что то типа такого
index.cityname
Время поставил на месяц ? - или стоит ставить на больше ?
Еще хочу активировать gzip компрессию -
методы.. которы описали выше (на счет mysql) и т д тоже пока что рассматриваю, буду пробовать оптимизировать (дело в том что я больше по СЕО) :)
Вообщем код - безопасен и его можно использовать поставив больше времени только на кэшерование (только городов) и все.
Есть кто живой, или одни дорвейщики сидят ? 😂
Я тут думал над тем как перекинуть софт на мозгодейтельность в том плане выпустить свою марку чая, при покупке чая юзер должен вписать на банке имя дора - но под предлогом просто вписать его хобби, в итоге когда юзер дома пьет чай, через неделю он неосознанно становиться дорвейщиком, начинает интересоваться пс, выдачей дорами, а банка с чаем стоит у него на столе всегда, на этой банке есть серийный номер - штрих код ! - этот штрих код и есть рефка на мою партнерку, когда дорвейщик созревает, он начинает клипать доры на право и на лево, (тематика доров, то самое имя на банке которое он вписал как хобби - ну или ключевое слово) вставляя штрик код - на редиректы.
В итоге я начал конкурировать с липтоном, если у тех чисто психологический эффект то у моего чая совсем другой, ну вы поняли, а если люди интересуются чаем но у них нет компьютера (то они отмечают галочку, нет компьютера, тогда им предлагают некую работу по перепродажи чая как реферальная система для тех у кого нет компьютера, в итоге из всей реферальной системы каждый день кто то преобретает компьютер, ну а потом по той же линии (пишут слово на банке чая) растет дорвейщик, потом растут доры, потом я богатею энергосимуляция - ну это мой второй аналог космического дорвея но марку я вам не скажу, но чай пил каждый дорвейщик, а если не каждый то обратитесь в пм, я вам скажу название чая, заполните слово, ну вам там проще будет. могу и код рефки выслать за одно.