2010-09-11 14 views
21

En el trabajo, recientemente comenzamos a diseñar una aplicación para "gran escala" (estamos diseñando para el potencial de servir a muchos millones de golpea un día). Uno de los desarrolladores senior y sysadmin han configurado Memcache en el servidor.Diferencia entre Memcache, APC, XCache y otras alternativas No he oído hablar de

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 Hunky Dory.

Una desventaja 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 parecen de los pasos para que funcione correctamente, pero conseguir 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 cuestión principal, pero incedentally, si has sido capaz de compilar Memcache para MAMP 1.9 en Snow Leopard, por favor déjame saber el truco.

Mi primaria pregunta es acerca de 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í: Cache results of a mysql query manually to a txt file) pero no conozco los pros, los contras y las diferencias entre cada uno.

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

Cualquier persona que 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í.

Creo que es toda la información útil.

Muchas gracias por prestar su tiempo para ampliar mis conocimientos. - Alex.

Respuesta

31

Primero, una lista de opcode cachers for php.

Segundo Memcache/MemcacheD no es un Cacher de código de operación. 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 Estoy de acuerdo que es muy molesto para la configuración de APC, Memcache en MAMP. Sin embargo, hay tutoriales que tratan sobre esto.


Editar 2 También con respecto a la mejor Cacher Código de operación 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.


Datos 3 muy interesante article here trata de comparar el rendimiento de unos pocos cachers diferentes. (Este artículo parece estar escrito en 2006 y no debería usarse realmente para la referencia actual)

+0

¡Muchas gracias! Esto realmente ayuda a ponerlo en orden para mí :) –

1

APC es una 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 una caché de datos. Almacenará los datos como un par de valores clave.

Cuestiones relacionadas