php - should - xampp apc
¿Qué usar en lugar de la caché de datos de usuario de apc en php 5.5? (4)
A partir de PHP 5.5, el almacenamiento de datos de usuario de APC se empaqueta por separado como PECL APCu .
- Código fuente: http://pecl.php.net/package/APCu
- El paquete homebrew de MacOS es php55-apcu (
brew install php55-apcu
) - Debian / ubuntu se llama php5-apcu (
apt-get install php5-apcu
) - Fedora / RedHat se llama php-pecl-apcu (
yum install php-pecl-apcu
) - Windows: use APCu dll precompilado : siga las instrucciones que se proporcionan en la respuesta a continuación .
Esto le permite usar todas las funciones de caché de usuario , como apc_store () . También devolverá true
para extension_loaded(''apc'')
, esto significa que todas las bibliotecas que dependen de APC funcionarán de manera similar a PHP 5.4.
PHP 5.5 incluye zend opcache por defecto, lo que básicamente significa que casi nadie usará APC.
¿Pero qué usar en lugar de la parte de caché de datos de usuario de APC (apc_store & apc_fetch & similar)?
Un caso de uso en el que realmente me gusta usar el caché de datos de usuario de APC son las "versiones" de activos estáticos (javascript, css ..). Cada vez que hago referencia al archivo estático, agrego hash de su contenido en la url (por ejemplo, <script src = / script.js> se convertirá en <script src = / script.js? V = hash>), de modo que el navegador siempre use la versión actual y puede almacenarlo en caché de forma permanente.
Me imagino usando redis o memcache para almacenar los hashes de los archivos estáticos, pero parece tonto pedir otro proceso a través de la red o un socket solo para obtener un hash del contenido del archivo. El caché de datos de usuario de APC (que se encuentra en la memoria compartida y acceder a él es casi tan rápido como acceder a la variable php) parece ser lo correcto para usar con esos datos.
Entonces, la pregunta es: ¿qué usar en PHP 5.5 para almacenar pequeños bits de datos en lugar de APC?
Eche un vistazo al código de operación de XCache, de los autores de lighttpd. Es compatible con php 5.5 y el caché de datos de usuario: http://xcache.lighttpd.net/wiki/XcacheApi
No lo intenté yo mismo (todavía uso APC y php 5.4).
Nada más que decir. Ya tienes la respuesta correcta. Supongo que puedo proporcionarle un enlace al tutorial sobre cómo descargar e instalar APCu en XAMPP en Windows para PHP 5.5 y 5.6:
Enlace para descargar APCu para php build de 5.3 y superior: descargue diferentes versiones de APCu
Tutorial de instalación : instrucciones de instalación (la versión más reciente debe estar en la parte inferior de la lista de archivos; use esta)
También tenga en cuenta que tendrá dos opciones para elegir, como las versiones 64 u 84 , así como nts o ts y vc9 o vc11 (puede ser diferente en su caso) y, por supuesto, la versión de PHP correcta (en mi caso, que sería PHP 5.6 para mi xampp).
EJEMPLO:
Si quiere elegir bien, primero debe ejecutar phpinfo () y verificar esos parámetros:
Zend Extension Build and Architecture
En mi caso eso sería:
[Zend Extension Build:] API220131226,TS,VC11
[Architecture:] x86
Eso significa que en mi caso tendría que elegir ACLu que contenga en el nombre de archivo esos parámetros 5.6, TS, VC11, 86
Nombre del archivo a descargar : php_apcu-4.0.7-5.6-ts-vc11-x86.zip
Espero que te aclaren las cosas.
Algunas explicaciones adicionales sobre diferentes construcciones de PHP:
diferencia ts vs nts: TS se refiere a compilaciones capaces de multiproceso. NTS se refiere a construcciones de un solo hilo. El caso de uso de los binarios de TS implica la interacción con un SAPI de múltiples hebras y PHP cargado como un módulo en un servidor web. Para los binarios de NTS, el caso de uso generalizado es la interacción con un servidor web a través del protocolo FastCGI, que no utiliza multihilo (pero también, por ejemplo, CLI).
diferencia vc9 vs vc11 vs vc14: las versiones más recientes de PHP se crean con VC9, VC11 o VC14 (compilador de Visual Studio 2008, 2012 o 2015 respectivamente) e incluyen mejoras en el rendimiento y la estabilidad.
- Las compilaciones de VC9 requieren que tenga Visual C ++ Redistributable para Visual Studio 2008 SP1 x86 o x64 instalado
- Las compilaciones de VC11 requieren tener Visual C ++ Redistributable para Visual Studio 2012 x86 o x64 instalado
- Las compilaciones VC14 requieren tener instalado Visual C ++ Redistributable para Visual Studio 2015 x86 o x64
diferencia 86 frente a 64: las compilaciones x64 de PHP para Windows deben considerarse experimentales y aún no proporcionan soporte para archivos grandes o enteros de 64 bits.
Recientemente traté esta pregunta después de actualizar de php 5.3 a php 5.5 beta 2.
Miré a Memcache y Redis. Dependiendo de a quién le preguntes, el rendimiento entre los dos es aproximadamente el mismo. Algunos afirman que Redis es ligeramente más rápido. Sin embargo, Redis tiene muchas más funciones que Memcahe, así que decidí ir con Redis.
Para un cliente PHP, elegí Phpredis sobre Predis. Phpredis es una extensión C, mientras que Pred es una implementación de PHP puro. Por lo tanto, Phpredis es generalmente más rápido.
Estoy utilizando principalmente Redis para almacenar en caché y recuperar objetos serializados. Comencé el proyecto que estoy desarrollando actualmente en PHP 5.3 con APC. Sigo desarrollando el proyecto con php 5.5 y redis. Si bien no tengo estadísticas de referencia, puedo decirle que la aplicación se "siente" más rápido. Esto probablemente se deba a las mejoras de rendimiento en php 5.5 en lugar de a la memoria caché de usuario de APC frente a Redis. De cualquier manera, estoy feliz con mi elección.
Espero que eso ayude. Buena suerte y feliz piratería :-)