WP_CACHE_GET(): Как получать данные из кэша в WordPress 2.0.0

WP_CACHE_GET() │ WP 2.0.0

Функция wp_cache_get() позволяет получить данные из кэша по указанному ключу и группе.

Работа с кэшем осуществляется через объект класса WP_Object_Cache. Данные кэша сохраняются в оперативной памяти сервера (RAM) во время генерации страницы. Если у вас установлен плагин для постоянного кэширования, информация может храниться дольше и использоваться при повторных посещениях страниц.

Сопутствующие функции

  • wp_cache_add() — добавляет новые данные в кэш; если кэш с таким ключом уже существует, ничего не происходит.
  • wp_cache_set() — сохраняет данные в кэше.

Применение и скорость

  • Используется в: wp_load_alloptions()
  • Время выполнения: 1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.054485 сек

Возвращаемые значения

Возвращает данные кэша при успешном выполнении или false, если данные не найдены.

Использование функции

wp_cache_get( $key, $group, $force, $found );

Параметры

  • $key (int|string): (обязательный) Ключ, под которым хранится содержимое кэша.
  • $group (string): Группа, к которой относятся данные кэша. По умолчанию: ''.
  • $force (true|false): Нужно ли принудительно обновить локальный кэш из постоянного. По умолчанию: false.
  • $found (true|false): (передается по ссылке) Указывает, найден ли ключ в кэше. По умолчанию: null.

Примеры использования

Пример 1: Получение данных из кэша

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

Таким образом, чтобы получить данные о метаданных пользователя из кэша, используем следующий код:

$user_meta = wp_cache_get( 1, 'user_meta' );

Пример 2: Сохранен��е данных в кэше и извлечение их при необходимости

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

$cache_key = 'my_db_result';

// Выполняем запрос к базе данных и сохраняем его в кэш, если данных с этим ключом нет:
$my_db_result = wp_cache_get( $cache_key );
if( false === $my_db_result ){
    global $wpdb;
    $my_db_result = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'books'");

    wp_cache_set( $cache_key, $my_db_result );
}

// $my_db_result содержит те же данные, что и в кэше
print_r( $my_db_result );

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

Заметки

  • Смотрите: WP_Object_Cache::get()
  • Глобальная переменная: $wp_object_cache — экземпляр глобального объекта кэша.

История изменений

  • С версии 2.0.0 — введена функция.

Код функции wp_cache_get()

function wp_cache_get( $key, $group = '', $force = false, &$found = null ) {
    global $wp_object_cache;
    return $wp_object_cache->get( $key, $group, $force, $found );
}

Связанные функции

  • _prime_post_caches()
  • clean_comment_cache()
  • clean_post_cache()
  • clean_user_cache()
  • wp_cache_add()
  • и другие функции для работы с кэшем.

Теперь вы можете использовать wp_cache_get() для эффективного получения данных из кэша и оптимизации работы вашего сайта на WordPress!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *