Кэширование Flashcards

1
Q
  1. Что такое кэширование, для чего оно нужно?
A

Сохранение результата выполнения части кода в готовом виде в промежуточный буфер с быстрым доступом к нему.
Необходимо чтобы сэкономить процессорное время и уменьшить количество обращений к БД.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Какие есть системы кэширования в друпале? В чём их отличия и как их использовать?
A

Static page cache кэширует страницы для анонимных пользователей в базе данных. Страницы, запрошенные анонимными пользователями, сохраняются при первом запросе, а затем повторно используются для будущих посетителей.
Dynamic page cache предназначен для кэширования небольших частей каждой страницы (например, отдельных блоков)предназначен для авторизованных пользователей. Он позволяет кэшировать только ту часть страницы, которая не зависит от пользователя, авторизованного на сайте.
Custom cache

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Что такое cache bin, cache tag, cache context? Для чего они нужны? Как ими пользоваться?
A

cache bin - хранилище кэша
cache tag - указывает на конкретные сущности, если сущность обновилась, то кэш сбрасывается
cache context - это набор данных, присущий данному кэшированному блоку
Контексты позволяют добавить варианты кэша. Их может быть указано сколько угодно и какие угодно (из доступных). Каждый контекст это определенный сервис (всегда) созданный с определенными методами и именованием, о том как они создаются будет чуть ниже. В момент генерации кэша, он запрашивает все контексты, они возвращают строку или целое число, затем он на основе этих данных смотрит, есть ли для такой комбинации кэш, и если есть, то отдает его, а если нет, генерирует новый вариант.

Надо понимать что контексты нельзя напрямую инвалидировать как в случае с тегами.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Что такое Cacheable dependency? Зачем оно нужно и как используется?
A

Объекты, реализующие интерфейс CacheableDependencyInterface могут автоматически стать кешируемыми зависимостями
Например, при создании массива рендеринга для
Привет,% user, добро пожаловать на% site! P>, вы полагаетесь как на сущность User текущего пользователя, так и на конфигурацию system.site. Когда этот массив визуализации кэшируется, он имеет и эту сущность пользователя, и этот объект конфигурации в качестве своих кэшируемых зависимостей.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly