Hace poco una de las webs de una amiga, un portal que corre totalmente en PHP experimento un dramático incremento en el número de visitas lo cual es bueno, pero también un incremento en el consumo de recursos del servidor donde estaba alojada dicha web, en especial por la cantidad de querys o consultas del script a la base de datos MySQL que se cuadriplico.
La solución a este inconveniente la pudimos encontrar usando un script gratuito que tiene el cómico nombre de «Cacheton», pero el nombre es lo único cómico ya que es un script increíblemente serio y efectivo, lo que hace Cacheton es crear páginas estáticas (HTML) a partir de páginas generadas dinámicamente (PHP) estas páginas estáticas al consumir mínimos recursos en el server alivian la carga de este en CPU y memoria y lógicamente agilizan la web, estás páginas estáticas generadas son almacenadas en una carpeta donde tienen un tiempo de vida de unos minutos, horas o semanas según lo especifiquemos al cabo de lo cual expiran, y son renovadas la próxima vez que son accesadas.
Este sistema es conocido como «cache» de las páginas y funciona evitando que cada vez que se entre a una página esta tenga que estar haciendo querys o consultas a la base de datos lo cual tiene un costo en memoria y CPU en el servidor, en lugar de esto usa una imagen capturada en HTML la cual es usada durante un lapso de tiempo, la desventaja es que si se trata de una página que cambia constantemente, por ejemplo una que recibe comentarios de lectores, los cambios no se verán hasta que expire la imagen de cache y se vuelva a hacer la consulta a la base de datos, esta es la razón por la cual este es un sistema ideal para webs que no se actualizan constantemente.
Como funciona Cacheton?
Solo hay que colocar este include al comienzo de cada script PHP que nos interese tener en cache:
[php]include(‘cacheton.php’);[/php]
Y crear una carpeta vacía llamada cache en el mismo directorio donde esta el script, esta carpeta debe tener permiso de escritura de por lo menos un 755, en este mismo directorio (no dentro de la carpeta cache) debemos subir el script cacheton.php el cual podemos descargar desde el enlace que consignamos al final de este artículo.
Cacheton funciona de maravilla incluso con urls creadas mediante url rewriting, el cache tiene un tiempo de expiración de 300 segundos, pero podemos personalizar este tiempo con la variable $cache_life como muestran estas lineas, al comienzo de nuestro script:
[php]
$cache_life = 600;
include(‘cacheton.php’);
[/php]
Nos damos cuenta que Cacheton esta funcionando bien viendo el código fuente de nuestra página (después de la segunda carga, la primera sirve para hacer cache) y apreciando que al final hay una sintaxis que dice algo como:
<!-- Cached: 20100104 21:58:18 -->
Observaciones: Para algunos scripts conocidos existen sistemas de cache en forma de plugins, por ejemplo para WordPress tenemos un par de ellos que serán materia de otro artículo, como saben la instalación de plugins no requiere ninguna linea de programación por lo que sería ocioso usar Cacheton con este tipo de scripts si hay una forma más fácil de lograr lo mismo.