Drupal вопросы по кешированию.

Аватар пользователя VasyOK VasyOK 23 октября в 22:01
1

Приветствую специалистов по кешированию и архитектуре Drupal.

Можете объяснить так работает кеширование в views. В документацию конечно можно ссылку кинуть, но хотелось бы максимально простым языком. Чтобы и неофиты понимали.

Для начала что такое: Результат запроса и Обработанный вывод
? Когда какие значения использовать?

Комментарии

Аватар пользователя Valeratal Valeratal 25 октября в 19:58

мне тоже всегда было интересно. почему есть 2 вида кэширования

  1. Результат запроса
  2. Отображаемый вывод

Вроде как, результат запроса, это то, че пишет база данных, то есть какая-то инфа без оформления. А отображаемый вывод - это значит уже берут эти сырую инфу и варят до пригодного состояния

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

Или наоборот, отображаемый вывод кэшировать меньше? тогда вьюха возьмет текущий "результат запроса" и "доварит" и покажет ровно тоже самое. То есть нет смысла отображаемому выводу ставить меньшее время кэша

(а еще можно кэшировать весь блок.... кэшированию блока вообще плевать на сложности вьюхи?, у него свое кэширование Smile То есть, поставил 5 минут для Результат запроса и Отображаемый вывод, а у кэширования блока стоит 1 час (точнее настройки кэша сайта глобальные).. И блок будет обновлять раз в час.

А если крон раз в 3 часа, то и кэш вроде не почистится...

Короче, намудрили. Ох, простите. Это называеться "ГИБКОСТЬ" Smile

Аватар пользователя Grenuy Grenuy 25 октября в 21:23
1

Query Results Caching
Необработанные результаты запроса, которые следует кэшировать как минимум на 1 минуту. Зная Ваш сайт вы лучше всех знаете, как часто должен меняться ваш контент в определеном месте Views

Rendered Output Caching

Сгенерированная разметка, которую следует кэшировать как можно дольше (если запрос изменится, вывод будет обновлен).

Block Caching

Если вы создаете блок, будет пременен кэш block встроеный в ядро Drupal

Drupal 7
для кэширования всех запросов
https://drupal.org/project/views_cache_bully

Drupal 8
кэши через теги сделаны, и тем самым снова появились новые +сы но и новые минусы )
https://www.drupal.org/project/views_custom_cache_tag

При возможности рекомендую попробовать Varnish (нужно иметь возможность на сервер поставить)
и это будет очень крутой + к производительности.
Идеально Varnish + Nginx
Менее идеально(в основном так пользуюсь) Nginx + Varnihs + Nginx
Еще менее идеально Nginx
Совсем не идеально Apache )

Аватар пользователя VasyOK VasyOK 26 октября в 2:07

Grenuy, спасибо, что ответили. Пока я хотел вынести на повестку дня вопрос о том, что встроено в views. Без сторонних модулей. Иначе можно будет диссертацию писать. Вот вы выделили жирным:
Query Results Caching
Rendered Output Caching
Block Caching

Можно эти понятия как-то попроще объяснить? И если включены первые 2, имеет ли смысл включать Block Caching?

Аватар пользователя Grenuy Grenuy 26 октября в 16:49

Block caching кэширует блоки если они есть. В целом если можно без блока то вообще не нужно и не юзай блоки.
А еще для понимания это все конечно здорово и нужно, если возникают проблемы.
на простом шаред хосте друпал спокойно держал нагрузку в 10-15тыс уников без никаких кэшей.
С кэшами прийдут вопросы что что то поправил, а оно не поправилось. Так же могут быть проблемы с динамичными данными для разных пользователей.
К тому ради фана можно конечно поиграться и поучиться. А ради дела то сайт должен быть достаточно нагружен. Или же данные очень сложные в запросах которые нужно будет подумать и как то оптимизировать при возможности, ну и в конченом итоге кэши )

Короче кэши облегчают жизнь, но прежде чем к ним обращаться нужно все оптимизировать без кэшей.

Аватар пользователя Valeratal Valeratal 27 октября в 12:44

и обратное верно. Если хостинг дохлый, то хоть обвешайся кэшами. Будет то одно, то другое тормозить
p.s. простой шаред он очень разным бывает.
А еще кэши вьюх в 7-ке не чистились. Как сейчас обстоит- не знаю. Один у меня сайтег есть мелкий, у него посещалка 150 чел в день. База разрастается на 8гб Smile

Аватар пользователя Grenuy Grenuy 27 октября в 13:05

Ну вот поэтому и роздувается так как нужно выглядеть каждого посетителя записать, чем Гугл аналитика или Яндекс метрика не устраивает не понятно. На крайняк цели прописать. Но это другая история ))

Аватар пользователя Valeratal Valeratal 27 октября в 13:11

чувак, ну че ты чушь то пишешь. Причем тут модуль статистика и кэш вьюх?
ну да, ты показал свою некомпетентность в другой теме. Но сюда зачем это подтягивать?

Аватар пользователя Grenuy Grenuy 27 октября в 13:26

Valeratal wrote:
чувак, ну че ты чушь то пишешь. Причем тут модуль статистика и кэш вьюх?
ну да, ты показал свою некомпетентность в другой теме. Но сюда зачем это подтягивать?

1. В чем показал не компетентность? Кажется человек сейчас хоть что то находит как раз из за моих подсказок.

Один у меня сайтег есть мелкий, у него посещалка 150 чел в день. База разрастается на 8гб

2. Статистика притом что база твоя растет из за кэшей или из за статистики, помню у тебя был запрос, где удивлялся почему база растет когда каждого пользователя записываешь в базу.
3. А свою некомпетентность показываешь через один комментарий, ссылаючись на то что "вот как тут все плохо, а в ВП хорошо, я в ВП работать не буду, но там где работаю все плохо, и вообще композер ужас"
Прошу не утверждаться за счет меня. И поправить свою речь, так как никто никому не грубил, и в том числе тебе подсказывал в твоих проблемах.

Аватар пользователя vlucas vlucas 27 октября в 18:57

Не обращай лучше просто.
Когда сказать нечего по теме - начинают на личности переходить.

Аватар пользователя Valeratal Valeratal 27 октября в 13:46

Grenuy wrote: 1. В чем показал не компетентность?

в том, что предлагаешь менять гугл-аналитикс на стандартный модуль статистика. Хотя у модуля статистика есть больше функций. Я уже приводил в пример, отображение популярных материалов за неделю вьюхой. Как тут внешние сервисы аналитики могут? да никак

2. Статистика притом что база твоя растет из за кэшей

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

3. А свою некомпетентность показываешь через один комментарий

вот как тут все плохо, а в ВП хорошо

да тут все плохо, а в ВП хорошо. Надо примеры? модуль симплньюс застрял банально, нет у них (создателей) времени, сил и денег. А модуль для рассылки в ВП - цветет и пахнет. Модуль для яндекс-турбо - нет вообще, ни под 7-ку, ни под 9-ку тем более. Чуваки 4 года обсуждают в ишью темы "Бустрап" перевод с третьего бустрапа на 4-й. Вместо того, чтобы сделать одну хорошую тему на бустрапе4, на орге есть несколько и все недоделанные. Зато каждый ментейнер рассказывает, почему его тема лучше.
Композер - лишняя сущность.

Аватар пользователя VasyOK VasyOK 27 октября в 19:01

Валерий, изыди плз. Дай другим специалистам высказать свое мнение. Ты тут не единственный гуру разработки.