Frederico de Castro

Melhorando o desempenho com o uso de Cache

Antigamente os sites eram mais estáticos, poucos deles apresentavam conteúdo dinâmico vindo de um banco de dados.

Mas hoje, é dificil ver um site estático e com isso a preocupação com o desempenho que antes era um luxo hoje é um requisito muito importante.

Pensando nisso, foram criados vários scripts de cache e o que vou apresentar hoje é o Cache Lite (PHP).

Download do Cache Lite

// Inclui a classe Cache Lite
require_once("Lite.php");

// Seta um nome para o cache
$id = "nosso_cache";

// Seta as configurações
$options = array(
	'cacheDir' => "cache/",
	"lifeTime" => 50
);

// Instancia o objeto Cache Lite
$objCache = new Cache_Lite($options);

// Teste se já existe um Cache válido
if ($conteudo = $objCache->get($id)) {
	// Se existe ele exibe o conteudo que estava no cache
	echo $conteudo;

	// Adiciona no fim do conteúdo um indicador que veio do cache (só para exemplo)
	echo " [cached]";
} else {
	// Se ainda não existe um cache para esse conteudo, devemos criar o conteúdo, exibi-lo e depois armazena-lo no cache para que a próxima consulta não seja criada e sim retornada do cache

	//Criamos o resultado
	$quote = "Aprendendo como utilizar o cache";

	//Exibimos o resultado
	echo $quote;

	//Armazenamos no cache
	$objCache->save($quote, $id);
}

O resultado se o cache não existir seria:

Aprendendo como utilizar o cache

E se ele existir seria

Aprendendo como utilizar o cache [cached]

Dessa forma, ele só criará o resultado final se ainda não existir em cache e também se não estiver com a validade vencida. Leia sobre o lifetime na legenda no final do artigo.

Viu  como é simples?

Legenda:

  • cacheDir :: pasta onde serão armazenados os arquivos gerados do cache
  • lifetime :: tempo de vida do arquivo de cache em segundos. É necessário para que quando você pergunte se existe um cache válido ele retorne falso quando não existir o arquivo e também quando existir, porém com a validade vencida
  • $id :: utilizei essa variável para armazenar o nome do arquivo do cache. É interessante utilizar essa função em conjunto com a md5() para que o nome do arquivo não contenha caracteres inválidos como a interrogação ? ou barras / que são normais em urls.

Abraços!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Precisa de ajuda com algo relacionado a este assunto?

Me chama no WhatsApp que eu posso te ajudar!