Maneiras de implementar um caching engine eficaz e eficiente
Upcoming SlideShare
Loading in...5
×
 

Maneiras de implementar um caching engine eficaz e eficiente

on

  • 2,188 views

Softwares que tem milhares de acessos simultâneos geralmente não conseguem sobreviver sem um bom sistema de cache. E há várias soluções eficazes com esse objetivo, desde bibliotecas como o ...

Softwares que tem milhares de acessos simultâneos geralmente não conseguem sobreviver sem um bom sistema de cache. E há várias soluções eficazes com esse objetivo, desde bibliotecas como o Smarty até soluções em que não é necessário utilizar nenhuma biblioteca, como a maneira Rasmus Lerdorf de implementar cache utilizando a página de erro 404.

Statistics

Views

Total Views
2,188
Views on SlideShare
2,181
Embed Views
7

Actions

Likes
1
Downloads
40
Comments
0

3 Embeds 7

http://www.slideshare.net 5
http://www.health.medicbd.com 1
http://www.php-talks.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Maneiras de implementar um caching engine eficaz e eficiente Maneiras de implementar um caching engine eficaz e eficiente Presentation Transcript

  • Maneiras de implementar um caching engine eficaz e eficiente Almir Neto – almirneto@gmail.com PHP Conference Brazil 2009 http://www.phpconf.com.br Osasco, 27 de Novembro de 2009
  • Maneiras de implementar um caching engine eficaz e eficiente Grupo de Desenvolvedores PHP de Goiás ● Lista de Discussão ● Troca de Conhecimentos ● Encontros ● Palestras ● Eventos ● http://www.php.org.br ● http://www.gophp.com.br
  • Maneiras de implementar um caching engine eficaz e eficiente O que é cache? Cache é um dispositivo de acesso rápido, que tem como objetivo aumentar a performance de aplicações Almir Neto - @almirneto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Para que utilizar cache no PHP? Ao realizar cache de uma página PHP o usuário irá acessar diretamente o arquivo HTML. Com isso o tempo gasto com o processamento da página é nulo. Almir Neto - @almirneto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Tipos de Cache • Cache de Dados - Cache de informações contidas em um banco de dados ou em um objeto • Cache de Páginas - Cache no qual a página inteira é armazenada na memória Almir Neto - @almirneto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Como implementar Cache? • APC • Memcached • Smarty • Maneira Rasmus Lerdorf de implementar Cache
  • Maneiras de implementar um caching engine eficaz e eficiente APC - Alternative PHP Cache - Extensão do PECL - Instalação via linha de comando - Possibilita armazenar variáveis no cache, e recuperar essas informações posteriormente. - As informações adicionadas no cache persistirão entre requisições até que sejam removidas. - Ideal para armazenar cache de informações com poucas mudanças em sistemas com grande número de alterações das informações Exemplo: Tabelas de apoio, como UF, Cidade, CEP, etc - Simples utilização Almir Neto - @almirneto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Memcached - Extensão do PECL - Sistema distribuído de cacheamento de recursos - Tem o objetivo de reduzir a carga no banco de dados - Possibilidade de adicionar vários servidores, cada um com um “peso” - Utilização parecida com o APC - Possibilidade de criar adicionar objetos com tempo de vida pré- definidos - Possibilidade de excluir objetos manualmente - É possível utilizar o memcached como se fosse uma session - Quem utiliza: Facebook, Youtube, Flickr Almir Neto - @almirneto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Memcached <?php $id = (int) $_GET['id']; $cache_id = "noticia::$id"; $memcache = new Memcache(); $memcache->connect('localhost', 11211); if(!($noticia = $memcache->get($cache_id))) { $noticia = new Noticia($id); $memcache->set($cache_id,$noticia); } Almir Neto - @almirneto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Smarty - Sistema de Template - Gera cache do template - Se algum template for alterado o Smarty recompila automaticamente - Permite definir um tempo de vida para o template cacheado - Permite limpar o cache manualmente - Cache dinâmico Almir Neto - @almirneto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Smarty <?php require 'smarty/Smarty.class.php'; $id = (int) $_GET['id']; $smarty = new Smarty(); $smarty->caching = 1; if(!$smarty->is_cached('noticia.tpl',$id)) { //Carrega do banco de dados } $smarty->display('noticia.tpl',$id); Almir Neto - @almirneto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Rasmus' trick • Conhecida como a Maneira Rasmus Lerdorf de implementar cache • Técnica criada por Stig Bakken • Passos: – Altera-se a página de erro 404 para que esta chame um arquivo PHP. – O arquivo PHP gera uma página HTML com o nome que o usuário tentou acessar Dessa forma, o primeiro usuário que acessar vai gerar os arquivos HTML, e os próximos vão acessar diretamente o arquivo gerado, sem a necessidade da execução do PHP. Almir Neto - @almirneto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Fluxo da execução 1ª execução Almir Neto - @almirneto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Fluxo da execução Próximas execuções Almir Neto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Configurando o Apache ErrorDocument 404 /gerarCache.php Almir Neto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Show me the code! gerarCache.php Almir Neto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Como limpar o cache? Limpar todo o cache através de um arquivo em background Almir Neto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Como limpar o cache? Limpar um determinado arquivo Almir Neto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Bibliografia / Agradecimentos • Elton Minetto: http://www.eltonminetto.net/docs/app_web_escalaveis_xxe.pdf • Smarty: http://www.smarty.net • PHPSP: http://phpsp.org.br/2008/06/30/smarty-e-caching/ • Memcached http://www.danga.com/memcached/ • APC http://www.php.net/apc • Felipe Ribeiro http://imasters.uol.com.br/artigo/11191 Almir Neto almirneto@gmail.com
  • Maneiras de implementar um caching engine eficaz e eficiente Fim Almir Neto almirneto@gmail.com