¿Eres usuario Linux?, ¿Sabías que en la memoria del equipo se aloja un elemento llamado caché? Cuando hacemos uso de algún objeto web, llámese sitio web, aplicación web o cualquier elemento que esté basado en esta tecnología, en la memoria se almacenará por defecto algunas instrucciones y datos cuyo fin es que el procesador pueda acceder a ellos de forma continua. Esto ahorra tiempo y recursos al no tener que repetir instrucciones, y es esto lo que es conocido como memoria caché. La memoria caché ha sido diseñada con el fin de organizar de una manera mucho más centralizada, el almacenamiento de datos en el sistema. A todos nos gusta que cuando damos una orden esta sea ejecutada de forma veloz y precisamente ésta es su finalidad.
Ahora vamos a hablar sobre una aplicación en Linux que tiene como finalidad una mejor administración de la caché de la memoria y es memchached.
El diseño simple con el cual ha sido creado memcached permitirá una implementación rápida facilitando de forma simultánea el desarrollo y la administración de cachés de datos de grandes dimensiones. Además de esto no podemos olvidar que la API está disponible para los idiomas mas usados, es decir, estamos frente a una App bastante útil, dinámica y versátil.
Hemos hablado mucho sobre el trabajo global de memcached en nuestro sistema para la gestión de la caché en la memoria, pero seguro os preguntáis, ¿ cómo funciona esto?, Solvetic explicará en detalle esta tarea.
Al usar memcached debemos tener presente estas características de uso:
- Cada nodo es completamente independiente del otro.
- Cada nodo está en la capacidad de usar la memoria de otros nodos con el fin de optimizar procesos escasos de memoria.
Ahora, vamos a ver qué elementos componen la aplicación memcached:
- En primer lugar memcached cuenta con un software de cliente, que es esencial ya que brinda una lista de servidores memcached disponibles.
- También veremos un algoritmo de hashing, el cual es un algoritmo basado en el cliente y tiene como misión seleccionar un servidor basado en la clave distribuida.
- Luego encontraremos el software de servidor que tiene como tarea almacenar los valores con sus claves asignadas en una tabla hash interna, algo escalado a nivel de seguridad.
- Por último, pero no por eso menos importante, encontramos la LRU. Ésta determina en que momento memcached debe acceder a los datos antiguos, (ojo, si no existe memoria) o bien reutilizar la memoria disponible.
Antes de que entremos en detalle a aprender como instalar y usar memcached, veamos algunas de sus características para ver si nos llama la atención o no el uso de esta utilidad:
- Uso de Hash en múltiples servidores.
- Almacenamiento de datos binarios o cadenas.
- Hashing consistente tanto de forma nativa o bien a través de una biblioteca externa.
- Serialización de estructuras de datos.
- Comandos estándar de recuperación a través del comando Get.
Ahora sin más detalles vamos a ver como instalar memcached en CentOS 7.
1. Cómo actualizar paquetes del sistema para instalar memcached en CentOS 7 Linux
El primer paso siempre que debemos realizar es actualizar los paquetes del sistema, para esto ejecutaremos el siguiente comando:
sudo yum update
2. Cómo instalar memcached en CentOS 7 Linux
Una vez actualizado el sistema, vamos a proceder con la instalación de memcached, la cual se realizará con la ejecución del siguiente comando:
sudo yum install memcachedAllí ingresaremos la letra y para confirmar la descarga e instalación de memcached en CentOS 7
Una vez instalado veremos lo siguiente:
El siguiente paso consiste en instalar libmemcached, la cual es una biblioteca cliente donde dispondremos de un par de herramientas especiales para administrar el servidor memcache; algo que resultará muy beneficioso para las tareas de soporte. Para esta instalación vamos a ejecutar lo siguiente:
sudo yum install libmemcached
Allí ingresamos la letra y para proceder con la instalación de estas librerías.
sudo yum install libevent-devel sudo wget https://memcached.org/latest tar -zxf memcached-1.x.x.tar.gz cd memcached-1.x.x ./configure --prefix=/usr/local/memcached make && make test && sudo make install
3. Cómo configurar memcached en CentOS 7 Linux
Con el fin de que memcached funcione de forma correcta, será necesario que el servicio memcached esté escuchando a través de la dirección local 127.0.0.1.
Para configurar esto debemos aplicar un cambios en la variable OPTIONS en el archivo de configuración /etc/sysconfig/memcached. Para esto usaremos algún editor de texto como nano o vi:
sudo nano /etc/sysconfig/memcached
Podemos ver que la línea OPTIONS esta vacía, allí ingresaremos la siguiente línea:
-l 127.0.0.1 -U 0
Guardamos los cambios usando las teclas siguientes:
Ctrl + O
Salimos del editor usando las teclas:
Ctrl + X
Para comprender un poco más que elementos integran el archivo de configuración de memcached, Solvetic explicará el rol de cada uno:
Una vez se hayan procesado estos cambios, debemos aplicarlos, para ello ejecutamos lo siguiente:
systemctl restart memcached systemctl enable memcached
Cuando el servicio haya sido iniciado, vamos a validar que el servicio memcached está vinculado a la interfaz local (127.0.0.1) y escucha solo en las conexiones TCP. Para esta comprobación haremos uso del comando netstat de la siguiente forma:
netstat -plunt
También será posible verificar las estadísticas del servidor a través de la línea memcached-tool:
memcached-tool 127.0.0.1 stats
El siguiente paso consiste en permitir el acceso al servidor memcached abriendo un puerto 11211 en el firewall. Esto evitará que por reglas de seguridad sea bloqueado. Ejecutaremos lo siguiente:
firewall-cmd --permanent --zone=public --add-port=11211/tcpExisten algunas opciones de complementos que podemos instalar para que memcached optimice el uso de aplicaciones en base al lenguaje usado:
yum install php-pecl-memcache (extensión de memcached para PHP) yum install perl-Cache-Memcached (extensión de memcached para PERL) yum install python-memcached (extensión de memcached para PYTHON)Solvetic siempre te trae lo mejor para administrar cada aspecto del sistema y con memcached será posible administrar de una forma mucho más global cada aspecto de la cache en CentOS 7.