Leí este artículo: http://www.mysqlperformanceblog.com/2006/09/27/apc-or-memcached/ desde hace mucho tiempo. Quiero obtener el mejor motor de almacenamiento en caché disponible para que mi aplicación sea realmente rápida. Por supuesto, no quiero over-cache pero quiero al menos elegir lo mejor que hay. En ese artículo dice que Memcached es lento y apc es rápido, entonces ¿por qué todos eligen Memcached ?
http://framework.zend.com/manual/en/zend.cache.backends.html#zend.cache.backends.twolevels aquí dice "usa uno rápido (pero limitado) como Apc, Memcache ... y un "lento" como File, Sqlite ... "¿crees que usar Apc como rápido y Memcache como lento es una buena idea?
apc_store
. Opcode cache solo hace que PHP sea varias veces más rápido.apc_store()
es una ventaja adicional.Respuestas:
Memcached es un sistema de almacenamiento en caché distribuido, mientras que APC no está distribuido, y principalmente un caché de código de operación.
Si (y solo si) tiene una aplicación web que tiene que vivir en diferentes servidores web (equilibrio de carga), debe usar memcache para el almacenamiento en caché distribuido. Si no, solo quédate con APC y su caché.
Siempre debe usar un caché de código de operación, que es APC (también APC se integrará en php6 iirc, entonces, ¿por qué no comenzar a usarlo ahora?).
Puede / debe usar ambos para diferentes propósitos.
fuente
opcode
caché?opcode
caché es aquel que compila el código PHP simple en el código de máquina ("opcode") y luego lo almacena en el formulario compilado para futuras solicitudes (hasta que detecta que el archivo PHP original ha cambiado). Esto significa que PHP no tiene que ejecutar este paso de compilación en cada solicitud, ahorrando algo de tiempo. Es solo una de las formas de ayudar a garantizar un sitio rápido (entre muchos otros).Memcached si necesita preservar el estado en varios servidores web (si tiene una carga equilibrada y es importante que lo que está en la caché sea el mismo para todos los servidores).
APC si solo necesita acceso a memoria rápida para leer (y escribir) en un (o cada) servidor.
Recuerde que APC también puede compilar y acelerar el tiempo de ejecución de su script. Entonces, por ejemplo, podría estar usando APC para un mayor rendimiento de ejecución, mientras usa memcached para el almacenamiento en caché.
fuente
La principal ventaja de APC es la caché de código de operación. Dado que PHP 5.5 integró OpCache en su núcleo y APC para PHP 5.4 todavía está marcado como beta, no es un anuncio oficial, pero el desarrollo de APC se eliminaría en un futuro próximo.
Por lo tanto, le recomendaría que elija Memcached.
fuente
Utilizo uno para la velocidad y el otro para sincronizar todos mis servidores. Si utiliza memcache, tenga en cuenta los puertos abiertos que deberá bloquear con iptables.
fuente
Hola Thomaschaaf, espero que no sea una herramienta tarde para ti, pero ten en cuenta que APC tiene algunos problemas relacionados con el "caché de usuario". Para resumir, cuando configuras tiempos de espera para entradas de caché, o si tu apache se bloquea dentro del código interno de APC (tiempo de espera, por ejemplo), entonces puedes sufrir algunos problemas.
Tengo una entrada sobre el problema aquí: http://nirlevy.blogspot.com/2009/06/apc-futexwait-lockdown-make-your-apache.html , y también debe leer http: //t3.dotgnu. info / blog / php / user-cache-timebomb.html (creo que de uno de los desarrolladores de APC)
fuente
¡Solo uso APC ya que APC es un caché de código y actúa como memcache! Solo 1 archivo de configuración en lugar de 2.
Y solo 1 lugar para monitorear ambos caché .....
fuente
Depende de lo que esté haciendo, pero para mis sitios web de drupal que se ejecutan en un VPS, ¡encuentro que APC funciona muy bien! Si está ejecutando CentOS 6, está disponible como una actualización yum muy simple de instalar y sin configuración ya que los valores predeterminados son razonables. Un obvio imho.
fuente