Кэш WordPress: что можно кэшировать и как мы это делаем

Опубликовано: 2017-04-28

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

Что такое кэширование?

В вычислительной технике есть такая вещь, как «кеш», когда программный или аппаратный компонент используется для временного хранения значений и более быстрого их извлечения в будущем. Значения, такие как запросы MySQL или скомпилированный байт-код PHP, а также повторяющиеся данные, такие как HTML и изображения. Практически все, на самом деле.

Преимущества кэширования

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

Что можно кэшировать?

Существует несколько уровней, в зависимости от того, насколько далеко вы хотите продвинуться в оптимизации своего веб-сайта с помощью кэширования.

HTML-вывод

Первый способ — кэшировать саму HTML-страницу. Существует множество плагинов кэширования WordPress, таких как WP Rocket и W3 Total Cache, которые делают это и многое другое. Эти плагины кэшируют результат вывода HTML, экономя время для будущих запросов. Кроме того, каждый плагин предоставляет вам механизм аннулирования кеша, чтобы вы могли обслуживать некэшированный контент, когда это необходимо.

Другой метод — «минимизировать» HTML, то есть сделать его меньше. Это дает вам пару килобайт на страницу, но со временем увеличивается.

Для этого вам понадобится доступ к панели инструментов или способ установки плагинов для WordPress.

Ссылка:

  • WP Ракета
  • Плагин W3 Total Cache WordPress

PHP OpCache

OpCaching — это метод, при котором PHP берет исходные файлы PHP и компилирует их в промежуточную форму, называемую байт-кодом. Байт-код подобен машинному коду компьютера, но он относится к машинному коду, который выполняется «виртуальной машиной» (в данном случае PHP), а не реальной. Поскольку это машинный код, который находится в памяти, он может быть выполнен намного быстрее, чем когда интерпретатор PHP анализирует команду за раз и выполняет ее.

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

Вам необходимо иметь доступ к файлу конфигурации PHP, чтобы включить PHP OpCache.

Ссылка: OpCache

Разместите свой сайт с Pressidium

60- ДНЕВНАЯ ГАРАНТИЯ ВОЗВРАТА ДЕНЕГ

ПОСМОТРЕТЬ НАШИ ПЛАНЫ

Кэш объектов PHP

Это кэширование, которое выполняется на уровне ООП языка. PHP — это объектно-ориентированный язык, что означает, что он использует концепцию «объектов» для описания логики, данных и идей. Во время работы вашего приложения эти объекты постоянно создаются и уничтожаются (динамически, подсистемой, называемой сборщиком мусора). Процесс создания и инициализации этих объектов требует времени. Таким образом, кэширование объектов решает эту проблему путем кэширования самих объектов.

Это реализовано с помощью плагинов, таких как Memcached и других для Redis. Redis — это мощное хранилище структур данных в памяти, которое можно использовать в качестве базы данных. Memcached — это распределенная система кэширования объектов. Оба они являются отличным выбором для кэширования на этом уровне.

Вам потребуется доступ к конфигурации PHP, чтобы включить кэширование объектов PHP. Вам также потребуется доступ к экземпляру Redis или Memcached.

Ссылка

  • Плагины Redis для WordPress
  • Плагин Memcached для WordPress
  • Документация Redis
  • Memcached вики

Кэширование запросов MySQL

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

Для этого вам потребуется доступ к серверу базы данных.

Ссылка: Кэш запросов MySQL 8.0

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

Как мы решаем все проблемы с многоуровневым кэшированием Pressidium.

Ответ прост. Мы внедрили кеширование везде: на всех слоях WordPress.

Для вывода HTML мы реализуем два уровня кэширования, горячее и теплое . Эти слои являются частью нашего механизма адаптивного кэширования. Наш движок также может профилировать ваш сайт и применять наиболее эффективные правила кэширования. Но подробнее об этом мы поговорим в другой статье. Таким образом, горячий кэш — это данные, которые находятся в памяти и к которым можно быстро получить доступ. Теплый кэш — это данные, которые хранятся на современных SSD-дисках. Это увеличивает общий коэффициент попаданий в кэш и приводит к значительному повышению производительности вашего сайта по сравнению с обычным хранилищем.

Для наших корпоративных клиентов мы создали систему кэширования объектов, используя превосходное хранилище структур данных в памяти Redis. Наконец, кеширование запросов MySQL. Это включено по умолчанию и постоянно контролируется нашими DevOps. Кэширование запросов MySQL может дать вам ценную информацию о производительности вашего сайта.

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

Независимо от ваших потребностей в кэшировании и бюджета, мы можем предоставить.