Posts Tagged ‘flush_all’

Limpando o cache armazenado com flush_all no memcached através do Rails

08/06/2010

Esses dias estavamos desenvolvendo nossa nova ferramenta de publicação (CMA), desenvolvida em Ruby on Rails, pro Assine Já e Central de Relacionamento e me deparei com um “problema” com relação a limpeza de cache.

Na edição dos elementos do turbine, onde mudamos a ordem dos elementos e quais elementos estarão disponíveis, precisava limpar um monte de chave armazenada no memcached.

Como eram muitas chaves para limpar, teremos poucas edições no cma e não temos uma quantidade enorme de chaves armazenadas, decidimos por limpar todas as chaves do memcached.

Fácil tarefa né? Nem tanto! Por incrível que pareça, procurar por “memcached flush_all rails” não aponta nenhum exemplo real de como se limpar o cache da forma que eu queria!

Só achei depois de ler a documentação do Cache da lib ActiveSupport, que vc pode ver aqui.

Lá, voce encontra a documentação da implementação da classe MemCacheStore, onde facilmente voce encontra o método clear() que chama o flush_all do memcached. É só chamar Rails.cache.clear()! Fácil né!

Uma opção que acabei lendo em alguns fórum foi usar um plugin para poder usar o método detele_matched, mas não achei necessário. Como não testei, não vou dar minha opinião sobre o plugin, mas fica a dica aqui.

O incrivel é como a página de documentação de rails com relação ao flush_all do memcached não aparece como primeira opção na pesquisa do Google!

Espero que ajude alguém essa dica! rsrs Vamos ver se pelo menos o google acha essas informações aqui no meu blog!

Abs