Memcached

2.390 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.390
No SlideShare
0
A partir de incorporações
0
Número de incorporações
12
Ações
Compartilhamentos
0
Downloads
55
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Memcached

  1. 1. Memcached cache de objetos de alta performance Guilherme Chapiewski http://gc.blog.br <guilherme.chapiewski@gmail.com>
  2. 2. O que é cache?
  3. 3. O que é cache? <ul><li>“ Em ciência da computação, cache é uma c ole ção de dados previamente computados, armazenados em algum local de acesso mais rápido que o local original, utilizado em casos aonde o dado original exige muito esforço computacional para ser obtido ou gerado.” </li></ul><ul><li>http://en.wikipedia.org/wiki/Cache </li></ul>
  4. 4. O que é cache? <ul><li>“ Em outras palavras, cache é um armazenamento temporário onde dados frequentemente acessados podem ser acessados com alta velocidade. Uma vez que o dado é armazenado no cache, acessos futuros à mesma informação podem ser feitos acessando a cópia cacheada ao invés de re-computar o dado original, fazendo com que o tempo médio de acesso seja menor.” </li></ul><ul><li>http://en.wikipedia.org/wiki/Cache </li></ul>
  5. 5. Porque devemos usar cache?
  6. 6. Porque devemos usar cache ? <ul><li>Poupar recursos computacionais (especialmente os compartilhados). </li></ul><ul><li>Melhorar o tempo de resposta para os usu ários da aplicação. </li></ul><ul><li>Aumentar a capacidade da aplicação (atender mais usuários). </li></ul>
  7. 7. O que é Memcached?
  8. 8. O que é o Memcached? <ul><li>S istema de cache de objetos em memória concebido para aumentar a velocidade de aplicações dinâmicas aliviando a carga do banco de dados. </li></ul><ul><li>Desenvolvido pela Danga Interactive para aumentar a velocidade do LiveJournal.com, um site com 20 milh ões + de visualiza ções de páginas dinâmicas por dia! </li></ul>
  9. 9. Quais vantagens trouxe para o LiveJournal.com? <ul><li>Reduziu drasticamente a utiliza ção de banco de dados. </li></ul><ul><li>Melhorou significativamente o tempo de resposta da aplicação para o usuário. </li></ul><ul><li>Aumentou a velocidade de resposta do banco de dados nos casos de acesso à informações não cacheadas devido a baixa utilização do mesmo. </li></ul>
  10. 10. Como funciona?
  11. 11. Como funciona o Memcached: <ul><li>Fica fora da JVM - é um daemon escutando em alguma porta esperando por conexões. </li></ul><ul><li>Funciona como se fosse um grande hash table, armazenando pares de chave=valor. Atrav és de uma chave é possível armazenar ou obter um valor qualquer . </li></ul><ul><li>A aplica ção usa um cliente que se conecta ao Memcached para armazenar e obter os dados. </li></ul><ul><li>Do ponto de vista da aplicação o funcionamento é idêntico a outras engines de cache como JBossCache, EhCache ou OSCache. </li></ul>
  12. 12. Como funciona o Memcached:
  13. 13. Configura ção do ambiente : <ul><li>Configura-se a quantidade de instâncias de Memcached desejadas. </li></ul><ul><li>O cliente é configurado com o endereço de todas as instâncias de Memcached, ou seja, em todos os applications servers todos os clientes terão a mesma configuração. </li></ul><ul><li>É o cliente que decide qual servidor de Memcached atenderá cada requisição baseado num hash gerado a partir da chave utilizada para o cache de um determinado valor. </li></ul>
  14. 14. Exemplo: <ul><li>Passo 1 : a aplica çao solicita as chaves foo , bar e baz utilizando o cliente do Memcached , que calcula o hash das chaves determinando qual servidor atender á a requisi ção . </li></ul>
  15. 15. Exemplo: <ul><li>Passo 2 : o cliente do Memcached faz paralelamente resuisi ções à todos os servidores relevantes . </li></ul>
  16. 16. Exemplo: <ul><li>Passo 3 : o Memcached envia respostas ao cliente que fez a requisi ção . </li></ul>
  17. 17. Exemplo: <ul><li>Passo 4 : o cliente do Memcached retorna os dados para a aplica ção, encapsulando toda a complexidade da infraestrutura . </li></ul>
  18. 18. Alguns pontos: <ul><li>Somente o primeiro acesso à uma chave gera cache. Os acessos seguintes são “cache hit”. </li></ul><ul><li>Mesmo que o segundo acesso seja feito por outro application server, todos eles sempre irão no mesmo Memcached para uma determinada chave. </li></ul><ul><li>Todo cache expira depois de um determinado tempo (configurado pelo usuário no momento da criação da entrada no cache). </li></ul><ul><li>Se a memória do Memcached acabar, os itens mais antigos vão sendo removidos para dar espaço aos novos (LRU). </li></ul>
  19. 19. Para saber mais: <ul><li>O que é cache: http://en.wikipedia.org/wiki/Cache </li></ul><ul><li>Site do Memcached: http://www.danga.com/memcached/ </li></ul><ul><li>Memcached FAQ: http://www.socialtext.net/memcached/index.cgi?faq </li></ul><ul><li>Artigo sobre cache distribu ído com Memcached: http://www.linuxjournal.com/article/7451 </li></ul>

×