Devo usar os transientes com cache APC total do cache W3? [fechadas]

5

Devo usar Transientes em minhas consultas como essa?

<?php 
if ( ! $my_paged = absint( get_query_var( 'paged' ) ) )
$my_paged = 1;

if ( ! $my_query = get_transient( "567recent_$my_paged" ) ) {
    $my_query = new WP_Query ( "cat=2526&posts_per_page=1&paged=$my_paged" );
    set_transient( "567recent_$my_paged", $my_query, 60 * 60 );
}
while ($my_query->have_posts()) : $my_query->the_post(); ?> 

Em caso afirmativo, também posso usar o W3 Total Cache com o cache do banco de dados e com o APC ativado?

    
por Ronin 22.08.2012 / 15:10

1 resposta

4

A API temporária salva dados dentro do banco de dados, o que não é tão eficaz quanto APC , mas um fluxo de trabalho similar usado para transientes pode ser usado para o APC. É importante verificar se o APC está disponível e ativo, para que suas funções sejam utilizáveis. Como esse nem sempre é o caso, é necessário adicionar uma alternativa ao APC via API Transiente e combinar essas duas opções de armazenamento em cache em um fluxo de trabalho. O que asseguraria que há um mecanismo de armazenamento em cache disponível, mesmo se o APC não estiver disponível - isso é uma boa prática se você planeja distribuir seu código e deseja garantir que o armazenamento em cache funcione em diferentes ambientes. Se for apenas para suas próprias necessidades e você tiver controle sobre a configuração, com o APC no seu servidor disponível e ativado, você poderá usar apenas a variante APC, porque você sabe que ela funcionará e é muito mais rápida.

Abaixo, o código mostra o uso exemplar do APC:

Definir o cache

API transiente de WP:

set_transient( $transientname,$go,3600 );

com APC:

apc_add( $transientname,$go,3600 );

Também para excluir

API transiente de WP:

delete_transient( $transientname );

com APC:

apc_delete( $transientname );

Consultas de armazenamento em cache

$cachequery  = 'blog_id_' . $blog->ID;
$cacheexpire = 1800;

if ( $mypost = apc_fetch( $cachequery ) ) {
   echo "<!-- cached query -->";
} else {
   $mypost = query_posts( $args );
   apc_store( $cachequery, $mypost, $cacheexpire );
   echo "<!-- caching this -->";
}

Documentação da APC

Veja a documentação da APC para mais informações e funções.

    
por bueltge 05.04.2014 / 10:23