Acelera contenidos - PHP Cache

Acelera contenidos - PHP Cache

CACHEANDO CONTENIDOS EN PHP

Imagina que tienes un portal de contenidos en el que digamos que en la pagina principal hay muchos accesos a base de datos. Cada vez que un usuario accede a dicha pagina se lanzan todas las consultas, cuando en realidad el resultado de dichas consultas no varia mucho. Por ejemplo un sistema de noticias, con este sistema de cacheado solo se lanzará una consulta a tu bbdd cuando se publique una nueva noticia. Puedes hacer lo mismo con sistemas de comentarios, links... De esta manera todos las visitas que tengas sólo el primero realizará las consultas a tu bbdd cuando haya una nueva, el resto verá el resultado cacheado.

Un sencillo ejemplo de cacheado php:

ob_start();

// inicia el buffer de salida

echo ‘Este texto esta en el buffer !

’;

// escribe algo que vaya al buffer

$bufferContent = ob_get_contents();

// guarda en contenido del buffer en una variable

ob_end_clean();

// deten y limpia el buffer de salida

echo $bufferContent;

// escribe el contenido del buffer

?>

Ahora vamos con lo interesante. El primer visitante que use el buffer output creará un fichero de cache que será mostrado al resto de visitantes.

Cuando insertes una nueva noticia, prepara el script para que elimine el fichero guardado.

Este es el ejemplo completo:

// chequea si exite el fichero de cache

if ( file_exists( ‘cachefile.txt’ ) ) {

// si existe , lee su contenido y muestralo

readfile ( ‘cachefile.txt’ );

exit();

}

// si no existe el fichero de cache, inicializa

ob_start();

// display some HTML ( this will be stored in the buffer )

?>

Caching server output

este es el contenido del fichero de cache

#ejecuta las consultas que quieras, sólo se ejecutaran esta vez

#......................

#........

$bufferContent = ob_get_contents();

// recoge el contenido del buffer

ob_end_flush();

// limpia y muestra el contenido del buffer en el navegador

$fp = fopen ( ‘cachefile.txt’ , ‘w’ ) or die ( ‘Error abrir fichero de cache ’ );

// guarda el contenido de la cache en el fichero de cache

fwrite ( $fp , $bufferContent );

fclose( $fp );

?>

Con este sistema acelerás la carga de contenidos en portales con mucho trafico a tus bbdd.

kaiowazone

Zonaprecios

Sé el primero en Comentar

Recibir un email cuando alguien contesta a mi comentario