site - wordpress blog title php
Variables de caché en PHP (4)
He estado almacenando el búfer de salida de las páginas últimamente, pero ahora quiero almacenar los valores de las variables en caché.
Tengo un archivo PHP que hace un montón de consultas MySQL, luego llena las variables con varios datos de esas consultas.
Algunas de esas variables nunca cambiarán, pero algunas cambiarán con bastante frecuencia. ¿Cómo puedo almacenar en caché ciertas variables de esta manera? Estoy usando el almacenamiento en caché basado en archivos, si esto ayuda.
Dado que preguntaste sobre el almacenamiento en memoria caché basado en archivos, tanto memcache
como APC
no son una opción, aunque ciertamente recomendaría ambos en los casos en que los datos almacenados no sean demasiado grandes.
Para el almacenamiento en caché basado en archivos, le recomendaría utilizar un marco de almacenamiento en caché. Por ejemplo, puede usar Zend_Cache
desde Zend Framework
. Le permite almacenar los resultados de su consulta en archivos mediante una agradable interfaz orientada a objetos. Además, tienes muchas opciones, como validación y serialización. También hay otros marcos de almacenamiento en caché.
No sé cómo estructuraste tus datos de almacenamiento en caché actuales, así que esta es solo una breve plantilla sobre cómo puedes guardar cualquier tipo de variable (siempre que su contenido sea serializable) en un archivo.
file_put_contents($filename, serialize($variable));
Puede volcar cualquier variable (incluida una matriz) utilizando serializar , y la inversa es deserializar .
El volcado a un archivo sería una solución de caché bastante inútil, puede considerar el uso de Memcache que puede almacenar cualquier variable en la memoria, pero requiere algo de trabajo en el lado del servidor.
Me parece que un mysql local con tablas MEMORY puede ser útil, también ...
Sí, el almacenamiento en caché basado en archivos es una opción.
También hay otras opciones como Memcache y APC
Deberías echarle un vistazo a estos también. Si su aplicación está cargando mucho en su servidor MySQL, y si su base de datos ya está optimizada, el almacenamiento en caché es un paso que puede dar.