A adição de Memcached / APC requer códigos de escrita novamente?

Estou planejando adicionar APC ou MEMCACHED ao meu código PHP! Minha pergunta é que ele precisa rewrite todo o código? Como eu olhei para o PHP Manual e lá eu consegui isso!

function get_foo(foo_id) foo = memcached_get("foo:" . foo_id) return foo if defined foo foo = fetch_foo_from_database(foo_id) memcached_set("foo:" . foo_id, foo) return foo end 

Então, para armazenar a variável que preciso fazer memcached_set (…) ou é assim, adicionei o plugin e obtenho o aumento de desempenho!

Não tenho ideia sobre APC / Memcache, então qualquer discussão sobre isso é bem-vinda

Com a APC, você primeiro obtém um cache de código aberto – para essa parte, você não tem nada para modificar no seu código: basta instalar a extensão e habilitá-la.

O cache do opcode geralmente acelerará as coisas: impede que os scripts PHP sejam compilados de novo e de novo, mantendo os códigos opcionais – o resultado da compilation dos arquivos PHP – na memory.

Então, APC e memcached permitem armazenar dados na memory; normalmente, isso é usado para armazenar em cache o resultado de operações longas / dispendiosas (como consultas SQL complexas, chamadas de webservices, …) .

Sobre isso, não há magia: você terá que codificar um pouco, armazenar dados no cache e buscá-lo – fazendo a operação longa / dispendiosa se os dados não estiverem no cache ou a cache expirou.

Aqui estão algumas perguntas / respostas que podem lhe fornecer algumas informações adicionais:

  • Qual é a maneira mais fácil para o cache do opcode com o PHP / Apache?
  • O que é um cache bytecode e como posso usar um em PHP?
  • Quanto mais eficiente é php_apc do que o memcached?

Primeiro você receberá um impulso de desempenho apenas para instalar a APC. Quando um script é executado, ele é executado através do Zend_Compile que transforma o seu código PHP em OPCODES que ele então é executado através do Zend_Execute para executar. O processo de transformar o PHP em OPCODES é idêntico sempre que a página é carregada, então, fazê-lo novamente, a próxima vez é um desperdício. O APC (Cache do PHP alternativo) salva esses opcodes na memory, então a próxima vez que pode ignorar esse passo e fazer a página carregar mais rápido.

Quando se trata de armazenamento em cache no seu script, você precisará fazer algumas alterações. Você pode fazer essas mudanças gradualmente ao longo do tempo, obtendo um pouco mais de desempenho a cada vez, então você não precisa se preocupar em fazer tudo de uma vez. Se você tiver um único servidor eu usaria o APC, se você puder ter vários servidores no futuro eu iria com o Memcache.

Frutas baixas para melhorias de desempenho:

  • Encontre coisas que são carregadas muito, como sua página inicial. Reescreva esse controlador com uma function adicional que verifica se há dados no cache e o usa se estiver disponível. Caso contrário, carregue o antigo caminho e guarde-o no cache. Lembre-se de que você pode colocar arrays e objects em ambos os estoques de dados, por isso deve ser muito rápido de fazer.
  • Olhe as consultas do database que levam muito tempo para executar, coloque-as também.
  • Encontre outras coisas computacionalmente caras para armazenar em cache, estas dependerão muito da sua aplicação específica.