Object Cache — это один из самых эффективных способов ускорить работу сайта на WordPress, особенно при большом количестве запросов к базе данных. Он позволяет кэшировать результаты запросов к базе данных в памяти, значительно уменьшая нагрузку и время отклика.
Что такое Object Cache и зачем он нужен в WordPress
По умолчанию WordPress кэширует некоторые данные в течение запроса, но после завершения обработки страницы этот кэш сбрасывается. Object Cache позволяет сохранять данные между запросами, используя внешние хранилища, такие как Memcached или Redis.
В результате, если у вас динамичный сайт с большим количеством запросов к базе данных, Object Cache снижает количество обращений к базе, экономит ресурсы сервера и ускоряет загрузку страниц.
WPengine поддерживает Object Cache и предлагает встроенную поддержку Memcached, что упрощает настройку.
Как включить и настроить Object Cache на WPengine
На WPengine Object Cache включается автоматически, если в вашем аккаунте доступен Memcached. Для проверки состояния кэша можно использовать плагин Query Monitor, который покажет кэшированные запросы.
Если вы хотите вручную интегрировать Object Cache, можно использовать плагин Redis Object Cache или Memcached. Однако на WPengine предпочтительнее использовать встроенный Memcached, чтобы не конфликтовать с инфраструктурой.
Для ручного включения Object Cache через Memcached добавьте в файл wp-config.php следующий код:
define('WP_CACHE', true);
// Опционально, если нужно задать параметры подключения:
// define('WP_CACHE_KEY_SALT', 'wpengine:');WPengine уже предоставляет необходимые настройки, поэтому обычно достаточно просто активировать кэш.
Примеры использования Object Cache в коде WordPress на WPengine
Для разработки собственных решений можно использовать API Object Cache, например, функции wp_cache_get(), wp_cache_set() и wp_cache_delete(). Они позволяют кэшировать любые данные, чтобы повторно не выполнять ресурсоёмкие операции.
Рассмотрим пример кэширования результата сложного запроса к базе данных:
function wpengine_get_expensive_data() {
$cache_key = 'expensive_data';
$data = wp_cache_get($cache_key, 'wpengine_cache');
if ($data === false) {
global $wpdb;
$data = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_date DESC LIMIT 10");
wp_cache_set($cache_key, $data, 'wpengine_cache', 3600); // кэшируем на час
}
return $data;
}В этом примере мы сначала пытаемся получить данные из Object Cache. Если их нет, выполняем запрос к базе, сохраняем результат в кэш с ключом expensive_data на 3600 секунд и возвращаем данные.
Как очистить Object Cache вручную
При изменении данных, которые кэшируются, важно сбрасывать кэш, чтобы не показывать устаревшую информацию. Для этого используется функция wp_cache_delete():
wp_cache_delete('expensive_data', 'wpengine_cache');Вы можете вызывать эту функцию после обновления записей или по событию, например, при сохранении поста через хук save_post.
Плагины для расширенного управления Object Cache на WordPress
Кроме стандартных функций WordPress, существуют плагины, которые помогают управлять и мониторить Object Cache:
- Redis Object Cache — отличный плагин для работы с Redis, поддерживает автоочистку и мониторинг.
- W3 Total Cache — комплексный плагин для кэширования, который также умеет работать с Object Cache через Memcached или Redis.
- Clearfy Pro — плагин оптимизации WordPress, который позволяет отключить неиспользуемый функционал и улучшить работу кеша.
Для WPengine рекомендуется использовать встроенный Memcached и минимизировать установку дополнительных плагинов, чтобы не создавать конфликтов.
Советы по эффективному использованию Object Cache на WPengine
Чтобы Object Cache работал максимально эффективно на WPengine, соблюдайте следующие рекомендации:
- Не кэшируйте слишком большие объёмы данных — это может привести к переполнению памяти.
- Используйте ключи и группы для логического разделения кэша и удобного управления.
- Регулярно очищайте кэш по событиям обновления данных.
- Следите за нагрузкой на сервер и корректно настраивайте TTL (время жизни кэша).
- Тестируйте работу сайта с включённым и выключенным Object Cache, чтобы убедиться в положительном эффекте.
Использование Object Cache на WPengine значительно повысит производительность вашего WordPress-сайта и улучшит пользовательский опыт за счёт снижения времени загрузки страниц и уменьшения нагрузки на базу данных.