caching memcached apc xcache

caching - Diferencia entre Memcache, APC, XCache y otras alternativas de las que no he oído hablar



memcached (2)

APC es un caché de código de operación. Almacenará código PHP analizado para que cada vez que tus archivos PHP no necesiten ser analizados.

Memcache es un caché de datos. Almacenará los datos como un par de valores clave.

En el trabajo, recientemente comenzamos a diseñar una aplicación para "gran escala" (estamos diseñando para el potencial de servir muchos millones de visitas al día). Uno de los desarrolladores senior y sysadmin han configurado Memcache en el servidor.

Según tengo entendido, Memcache mantendrá los resultados de las consultas y ciertas tablas en la memoria durante X cantidad de tiempo y mantendrá todo el contenido de Hunky Dory.

Un inconveniente de Memcache parece ser que simplemente no puedo configurarlo en mi entorno de desarrollo local. He seguido algunas instrucciones diferentes sobre cómo compilarlo por ti mismo. La mayoría, si no todos los pasos parecen funcionar correctamente, pero obtienen este error en PHPLoad:

[11-Sep-2010 16:02:30] PHP Warning: PHP Startup: Unable to load dynamic library ''/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so'' - dlopen(/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so, 9): image not found in Unknown on line 0

No es la pregunta principal, pero si se ha podido compilar Memcache para MAMP 1.9 en Snow Leopard, por favor avíseme el truco.

Mi pregunta principal es sobre cuáles son las diferencias entre las diversas tecnologías de almacenamiento en caché web. He visto mención de Memcache, APC y Xcache (aquí: resultados de caché de una consulta de mysql manualmente a un archivo de texto ) pero no sé los pros, contras y diferencias entre cada uno.

En mi opinión, Memcache tiene la ventaja de ser el que eligieron el desarrollador principal del proyecto y nuestro administrador de sistemas. Tiene la desventaja de ser completamente foobar para intentar configurar y compilar en una Mac. : - ^)

Alguien a quien me gustaría escuchar de cualquiera que pueda enumerar los pros y los contras de cada una (o incluso una de) las otras tecnologías de caché. ¿Dónde se usan mejor? ¿Cómo se usan mejor? Y así.

Es toda la información útil, creo.

Muchas gracias por prestar su tiempo para ampliar mi conocimiento. - Alex.


Primero, una lista de buscadores de códigos de operación para php .

Segundo Memcache / MemcacheD no es un Cacher Opcode. Es un sistema de caché de memoria distribuida. No mejora la velocidad / rendimiento de su código PHP. Se puede usar para almacenar datos solo.

APC, EAccelerator, XCache y los demás no están distribuidos, lo que significa que solo puede almacenar datos en el servidor web local. Sin embargo, todos estos son cachers de código de operación y pueden mejorar el rendimiento de su aplicación PHP. La mayoría, excluyendo EAccelerator (en la versión actual) también pueden almacenar datos.

Por lo general, elijo APC para el código de operación (se informa que se incluirá en el núcleo de PHP 6). Sin embargo, si también tengo más de un servidor web para el sitio, también utilizaré MemcacheD.

Editar 1 Acepto que es muy molesto configurar APC, Memcache en MAMP. Sin embargo, hay tutoriales que tratan sobre esto.

Editar 2 También con respecto al mejor opcode Cacher para su aplicación realmente depende de qué servidor está utilizando. Algunos funcionan mejor en algunos sistemas. También depende del tamaño y la escala de su aplicación en cuanto a cómo funcionan los cachers.

Editar 3 Muy interesante artículo aquí sobre cómo comparar el rendimiento de algunos cachers diferentes. (Este artículo parece estar escrito en 2006 y no debería usarse realmente para referencia actual)