wp_cache_set() / wp_cache_get() — Object Cache

Time Full Services Time Full Services
Tipo Performance
Nome do erro wp_cache_set() / wp_cache_get() — Object Cache
Severidade Informativo
Desde WordPress 2.0
Descrição Interface do WordPress para cache de objetos em memória. Integra com backends como Redis ou Memcached quando disponíveis, ou usa cache em memória por request.

Causa

Queries ao banco de dados repetidas dentro do mesmo request desperdiçam recursos. O object cache armazena resultados na memória RAM para acesso instantâneo.

Como resolver

Use wp_cache_get() para tentar recuperar do cache antes de fazer a query. Salve com wp_cache_set() definindo um grupo e tempo de expiração. Invalide com wp_cache_delete() ao atualizar dados.

PHP
<?php
function meu_plugin_get_config(string $chave): mixed
{
    $grupo     = 'meu_plugin_config';
    $cache_key = 'config_' . sanitize_key($chave);

    // Tenta recuperar do cache
    $valor = wp_cache_get($cache_key, $grupo);
    if ($valor !== false) {
        return $valor;
    }

    // Cache miss: busca no banco
    $valor = get_option('meu_plugin_' . $chave);

    // Salva no cache por 1 hora
    wp_cache_set($cache_key, $valor, $grupo, HOUR_IN_SECONDS);

    return $valor;
}

// Invalidar ao atualizar
function meu_plugin_atualizar_config(string $chave, mixed $valor): void
{
    update_option('meu_plugin_' . $chave, $valor);

    // Remove do cache para forçar nova leitura
    wp_cache_delete('config_' . sanitize_key($chave), 'meu_plugin_config');
}

// Para invalidar todo o grupo (requer Redis com suporte a grupos)
// wp_cache_delete_group('meu_plugin_config');

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →