memcache em tudo!

Não sei como passei tanto tempo sem usar memcache. Numa breve conversa com o Gleicon, ele mencionou isso e em 15 minutos implementei no meu sistema de busca.

A API do cliente em python é extremamente simples, e o resultado é extremamente satisfatório. Agora, sempre que um usuário executa uma busca no sistema, ele verifica se os resultados estão no cache. Caso não estejam, o sistema faz o SELECT no banco e guarda N linhas no cache – algo como duas páginas, 200 registros.

Com isso, pude reduzir muito o uso do banco de dados e retornar os valores desejados em tempos menores que um quarto de segundo. Quanto mais usam o sistema, mais resultados vão pro cache, e assim ele se torna cada vez mais rápido.

Finalmente uma solução decente.

Anúncios

5 Comentários on “memcache em tudo!”

  1. against disse:

    pq c nao usa o proprio cache do banco ? overhead da conexao ?

  2. alef disse:

    o leo, vira homem! você que é um “exímio” dba não aprendeu o básico? banco não é o lugar pra fazer cache. a idéia de usar o memcache é justamente tirar a carga do banco, e deixa ele quieto pra fazer só o que realmente precisa.

    sempre que faço uma query, guardo os primeiros (tipo, 1000) resultados no banco, e dai pra frente é só memcache meu. assim, quando o usuário clica na “página 2” dos resultados, já nem vai mais no banco. o resultado é infinitamente superior.

    se liga no primeiro parágrafo do site da danga, dos caras que fizeram o memcache:

    Danga Interactive developed memcached to enhance the speed of LiveJournal.com, a site which was already doing 20 million+ dynamic page views per day for 1 million users with a bunch of webservers and a bunch of database servers. memcached dropped the database load to almost nothing, yielding faster page load times for users, better resource utilization, and faster access to the databases on a memcache miss.

  3. Franciel Dors disse:

    Bom artigo… nao consigo aplicar…
    nao achei servidor q disponibilize essa ferramenta, alguma indicação?

  4. alef disse:

    então, as máquinas que uso pra desenvolvimento e produção são linux ubuntu server, as versões mais recentes.

    no ubuntu, o memcached já está disponível como pacote debian, e pode ser instalado com apt-get.

    de qualquer forma, você pode baixar o memcache daemon direto no site da danga:

    http://www.danga.com/memcached/

  5. […] e memcache 4 01 2009 Certa vez coloquei um artigo sobre memcache no blog, e agora estou colocando outro  que mostra um pequeno exemplo em python para mascarar da […]


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s