it-swarm-pt.tech

Memcached vs APC qual devo escolher?

Eu li este artigo: http://www.mysqlperformanceblog.com/2006/09/27/apc-or-memcached/ do caminho de volta quando .. Eu quero obter o melhor mecanismo de cache disponível para que meu aplicativo é muito rápido. É claro que não quero armazenar em cache, mas quero pelo menos escolher a melhor coisa por aí. Nesse artigo, ele diz que o Memcached é lento e o apc é rápido, então por que todos estão escolhendo memcached ?

http://framework.zend.com/manual/en/zend.cache.backends.html#zend.cache.backends.twolevels aqui está escrito "use um rápido (mas limitado) como o Apc , Memcache ... e um "lento" como File, Sqlite ... "você acha que usar o Apc como rápido e o Memcache como slow é uma boa idéia?

160
Thomaschaaf

O Memcached é um sistema de cache distribuído, enquanto que o APC é não distribuído - e principalmente um cache de opcode.

Se (e somente se) você tiver um aplicativo da web que tenha que residir em diferentes servidores da web (loadbalancing), será necessário usar o memcache para armazenamento em cache distribuído. Se não, basta ficar com APC e seu cache.

Você deve sempre usar um cache opcode, que é o APC (também o APC será integrado ao php6 iirc, então porque não começar a usá-lo agora).

Você pode/deve usar ambos para diferentes propósitos.

263
Karsten

Memcached se você precisar preservar o estado em vários servidores da Web (se você estiver com balanceamento de carga e for importante que o que está no cache seja o mesmo para todos os servidores).

APC se você só precisa acessar a memória rápida para ler (e escrever) em um servidor (ou em cada).

Lembre-se de que o APC também pode compilar e acelerar o tempo de execução do seu script. Portanto, você poderia, por exemplo, estar usando o APC para aumentar o desempenho da execução, enquanto usava o memcached para armazenar em cache.

42
xkcd150

O principal advatage do APC é o cache opcode. Desde que PHP 5.5 integrou o OpCache ao seu núcleo e o APC para PHP 5.4 ainda está sinalizado como beta, não é um anúncio oficial, mas o desenvolvimento do APC será descartado no futuro próximo.

Então eu recomendo que você escolha o Memcached.

17
Hieu Vo

Eu uso um para velocidade e outro para sincronizar todos os meus servidores. Se você usar o memcache, tenha em mente as portas abertas que você precisará bloquear com o iptables.

9
Saimon Lovell

Hey Thomaschaaf, espero que esta não seja uma ferramenta atrasada para você, mas observe que a APC tem alguns problemas relacionados ao "cache do usuário". Para encurtar a história, quando você definir tempos limite para entradas de cache, ou se o seu Apache falhar dentro do código interno da APC (tempo limite, por exemplo), você poderá ter alguns problemas.

Eu tenho uma entrada sobre a questão aqui: http://nirlevy.blogspot.com/2009/06/apc-futexwait-lockdown-make-your-Apache.html , e você também deve ler - http://t3.dotgnu.info/blog/php/user-cache-timebomb.html (de um dos desenvolvedores da APC eu acho)

6
Nir Levy

Eu uso apenas o APC, já que o APC é um cache de código e age como o memcache! Apenas 1 arquivo de configuração em vez de 2.

E apenas 1 lugar para monitorar ambos os cache .....

1
Thomas Decaux

Depende do que você está fazendo, mas para o meu drupal sites rodando em um VPS eu acho que o APC funciona muito bem! Se você está rodando o CentOS 6, ele está disponível como uma atualização do yum, tão simples de instalar e sem configuração, já que os padrões são razoáveis. Um imho não brainer.

1
fred