jasonOk
@jasonOk
Легче болтать, чем код писать

Что на сайте нужно обязательно кэшировать?

Понимаю, что вопрос слишком общий, но что вы в своих проектах кэшируете обязательно? В каких местах кэшированием можно пренебрегать, а в каких определённо нет?
  • Вопрос задан
  • 2789 просмотров
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Обязательно - не надо ничего кэшировать.
Дополнение от dimasmagadan : Не забываем про настройку сервера для того, чтобы браузер клиента мог сам кэшировать страницы.

В идеале, кэшировать надо данные ВСЕХ функциональных блоков, зависящих от входных параметров.
К ним относятся:
1. SQL-запросы и ответы
2. поиск по любой структуре данных и результат этого поиска
3. файловая структура, находящаяся по определённому пути
4. данные, полученные для каждого из блоков представления ("список", "выборка", "статистика" и т.д.)
5. сформированный шаблонизатором контент на основе GET-параметров

Всегда кэшируйте первым тот блок, который занимает больше времени при обработке данных и т.д. по нисходящей.
Первые претенденты на кэширование, как правило: блоки с пунктами 2, 3 и 5.

Дополнение от Алексей Уколов :
Кеширование - это большая боль для разработчика, на самом деле. И "не надо кешировать" - это именно с этой точки зрения. Любой кеш усложняет приложение в разы, потому что его нужно инвалидировать, обрабатывать ошибки и т.п. Но часто без него не обойтись, это факт.
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
landergate
@landergate
IT-шный jack-of-all-trades
Тяжёлые места, которые могут повесить сайт при повышенной нагрузке.
Например, данные на главной странице, или динамический контент, отображаемый без регистрации.

Представьте, что на сайт зайдёт 1000 человек одновременно, просто на главную страницу сайта. Во что именно упрётся загрузка в такой системе - то и стоит по возможности кешировать, чтобы загрузка этих данных упиралась не в БД или диск, а подгружалась, например, в готовом виде из RAM.
Ответ написан
Комментировать
sim3x
@sim3x
Обязательно - ничего не кеширую

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

остальное все очень специфично, зависит от типа кэширования, какое вы используете ( nginx, varnish, memcached, или, может, вы под кэшированием вообще что-то другое подразумеваете)
Ответ написан
Комментировать
65536
@65536
желательно всё, что не обязательно рендрить каждый раз (редко меняющееся). например, не обязательно рендрить при каждой загрузке страницы какое-нибудь дерево категорий. кэшировать его, а кэш сбрасывать после изменений, или вручную или триггерить по событиям
Ответ написан
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Надо понять "для чего нужно кеширование", тогда вопрос "что кешировать" отпадет сам собой.
Кешировать надо все что создает излишнюю нагрузку на сервер. Сложные выборки данных, результаты сложных вычислений.
Например, у Вас есть список пользователей online и Ваш код проходится по списку пользователей и проверяет есть ли этот пользователь в этом списке или нет. При этом каждый раз формируя этот список. Закешировав его всего на 1 минуту - Вы получите прирост производительности. Даже при 1 запросе к серверу. Пример, абстрактный, любителям поумничать - в сад.
Ответ написан
nekt
@nekt
программист
Вопрос задан неправильно. Правильно бы вопрос звучал "как собрать статистику запросов к страницам и функциям, чтобы определить, что надо кэшировать".
Ответ написан
Комментировать
RouR
@RouR
Если пользователь авторизован - то его профиль и набор прав доступа
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы