Neste sábado estive estudando sobre o pacote Cache_Lite do PEAR e gostei bastante.
Não creio que ele se aplica a qualquer situação, mesmo porque você só precisa de cache para sistemas que necessitam da informação, ou um conjunto de informações, várias vezes e esses dados geram um certo desgaste ao servidor para serem geradas.
Como estou pensando em criar um jogo de sueca (cartas) on-line onde grupos de quatro jogadores irão compartilhar das mesmas informações durante todo o jogo, nada melhor do que usar o cache.
Tá, você deve estar pensando assim agora, "mas se são vários grupos jogando ao mesmo tempo, o arquivo de cache não pode ser o mesmo OU SE fica tudo em um mesmo arquivo provavelmente deve haver perda em performance."... então, o Cache_Lite além de ser muito rápido por ser simples, ele tem um controle de grupos e identificadores, ou seja você pode ter vários arquivos de cache de um mesmo grupo um um arquivo por id. sacou?
Um dica que eu não encontrei na documentação do Cache_Lite, é de que se você for fazer um cache de qualquer coisa que não seja uma string, você precisa colocar a opção de automaticSerialization para TRUE.
Só pra não ficar sem nenhum código nesse post, vai um exemplo tirado da documentação do Cache_Lite no PEAR.
'/tmp/',
'lifeTime' => 3600
);
// Create a Cache_Lite object
$Cache_Lite = new Cache_Lite($options);
if ($data = $Cache_Lite->get('block1')) {
echo($data);
} else {
$data = 'Data of the block 1';
$Cache_Lite->save($data);
}
echo('
Non cached line !
');
if ($data = $Cache_Lite->get('block2')) {
echo($data);
} else {
$data = 'Data of the block 2';
$Cache_Lite->save($data);
}
?>
Para maiores informações:
Um abração.