¿Debo usar Transients con W3 Total Cache APC Caching? [cerrado]

5

¿Debo usar Transitorios en mis consultas como esta?

<?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(); ?> 

Si es así, ¿también podría usar W3 Total Cache con el almacenamiento en caché de la base de datos y con APC habilitado?

    
pregunta Ronin 22.08.2012 - 15:10

1 respuesta

4

La API transitoria guarda datos dentro de la base de datos, que no es tan efectiva como APC , pero se puede usar un flujo de trabajo similar al utilizado para transitorios para APC. Es importante verificar si APC está disponible y activo, por lo que sus funciones son utilizables. Debido a que este no siempre es el caso, es considerar agregar una alternativa a APC a través de la API Transient y combinar esas dos opciones de almacenamiento en caché en un flujo de trabajo. Esto aseguraría que haya un mecanismo de almacenamiento en caché disponible, incluso si APC no está disponible. Esta es una buena práctica si planea distribuir su código y desea asegurarse de que el almacenamiento en caché funcione en diferentes entornos. Si es solo para sus propios requisitos y usted tiene control sobre la configuración, con APC en su servidor disponible y activado, entonces puede usar solo la variante de APC, porque sabe que funcionará y es mucho más rápido.

El siguiente código muestra el uso ejemplar de APC:

Establecer almacenamiento en caché

API transitoria de WP:

set_transient( $transientname,$go,3600 );

con APC:

apc_add( $transientname,$go,3600 );

También para eliminar

API transitoria de WP:

delete_transient( $transientname );

con APC:

apc_delete( $transientname );

Consultas de caché

$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 -->";
}

Documentación APC

Consulte la documentación de APC para obtener más información y funciones.

    
respondido por el bueltge 05.04.2014 - 10:23

Lea otras preguntas en las etiquetas