Skip to content

Instalar y utilizar Memcache en Ubuntu

Memcache es un sistema que permite reducir la carga de los servidores mediante el cacheo de la información. El programa permite destinar una porción de memoria RAM de la máquina para el almacenamiento de la información. Una vez que la información está cacheada, si se vuelve a solicitar dicha información, la carga de esos datos será mucho más rápida ya que no tendrá que realizar la solicitud al servidor web.

Antes de ponernos manos a la obra para ver como instalar y ver el funcionamiento de Memcache, es necesario que tengáis permisos de administrador del servidor para poder hacer su instalación, así como tener instalado MySQL y PHP.

Instalación Memcache

Para empezar, instalaremos Memcached vía “apt-get”.

El siguiente paso es instalar php-pear, el repositorio que almacena Memcache.

Si no tienes un compilador en tu servidor, tú puedes descargarte uno básico a la vez que te instalas memcache.

Finalmente, utilizamos PECL (PHP Extension Community Library) para instalar memcache.

Decimos que “yes” y pulsamos el botón “Enter” durante el proceso de instalación cuando nos pregunten si nos gustaría “Enable memcache sesión handler support? [yes]”.

Una vez que hayamos completado la instalación de memcache con PECL en nuestro servidor, añadimos memcache a “memcache.ini”.

Ahora ya estamos listos para empezar a utilizar Memcache.

Confirmar Memcache y ver estadísticas

Después de descargar memcache, tú puedes chequear que esto haya sido instalado realizando la siguiente búsqueda.

Adicionalmente, puedes ver las estadísticas de memcache mediante la siguiente instrucción.

Cómo trabaja Memcache

Memcache trabaja redirigiendo las peticiones realizadas a la web para recuperar primero los datos almacenados en cache antes que volver a ejecutar las consultas en el servidor. Los datos almacenados en cache, estarán disponibles durante un determinado periodo de tiempo, el cual una vez pase, la información se borrará de la cache. El objetivo de este sistema es evitar tener que ejecutar las peticiones una y otra vez en el servidor, reduciendo la carga en el servidor y mejorando la velocidad de la web.

El proceso de memcache se puede resumir en el siguiente código que os dejamos a continuación.

Un ejemplo con Memcache

En este punto, veremos un ejemplo de uso de memcache, un script que recupera un valor almacenado originalmente en una tabla MySQL.

Los siguientes pasos que veremos, nos permiten configurar un usuario con los permisos necesarios a la base de datos de nuestro ejemplo. También crearemos la tabla donde estará el dato almacenado e insertaremos el dato a recuperar.

Lo primero que hacemos es entrar al servidor MySQL. Para ello en nuestra línea de comandos del servidor ejecutamos lo siguiente.

A continuación ejecutamos las siguientes instrucciones.

Una vez que hayamos creado la base de datos, crearemos el script donde utilizaremos memcache. Para ello ejecutamos la siguiente instrucción.

Ahora vamos a construir el script paso por paso. Para ello, lo primero que haremos en el código será crear una conexión persistente con memcache, conectándolo con el puerto por defecto 11211.

El siguiente paso es conectarnos a la base de datos que hemos creado con nuestro usuario.

Después de eso, crearemos la consulta que vamos a ejecutar en la base de datos. También crearemos una key que identificará a esa acción.

El script primero buscará en cache la respuesta para la consulta. Si el resultado no existe, el script redirige la petición a la base de datos. Una vez la consulta haya sido contestada por la base de datos original, el script almacena el resultado en memoria, utilizando para ello la instrucción “set” que almacena la información y permite al usuario indicar el tiempo en segundos que esa información debería permanecer en cache. En nuestro caso indicaremos 600, que equivale a 10 minutos.

Pasado ese tiempo, la cache estará vacía y la consulta se volverá a ejecutar en la base de datos.

Si juntamos todo el código, deberíamos ver lo siguiente.

Si ejecutamos el script que hemos creado, deberíamos obtener los siguientes resultados.

Al utilizar este sistema de cache, debemos tener en cuenta que el espacio disponible para ello es limitado, por lo que no se puede utilizar como un almacén permanente, sino que siempre debemos indicar un tiempo prudente para que se vaya liberando espacio, además de que se vaya refrescando los datos almacenados.

Published inSugerencias tecnicas

Be First to Comment

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *