Cómo instalar Memcached en Ubuntu 22.04

Memcached es un sistema de caché de memoria distribuido, gratuito, de código abierto y de propósito general, que se utiliza para almacenar en caché datos de bases de datos. Es un sistema de caché en memoria de alto rendimiento que se utiliza para acelerar las aplicaciones web dinámicas reduciendo la carga de la base de datos. Memcached está formado por cuatro componentes que permiten al cliente y al servidor trabajar juntos para entregar los datos almacenados en caché de la forma más eficiente posible. Ofrece integración API para los principales lenguajes como PHP, Java, C/C++, Python, Ruby, Perl, etc.

Este tutorial te mostrará cómo instalar el servidor Memcached en un servidor Ubuntu 22.04 y cómo utilizarlo con PHP.

Requisitos

  • Un servidor que ejecute Ubuntu 22.04.
  • Una contraseña de root configurada en tu servidor.

Instalar Memcached en Ubuntu 22.04

Por defecto, el paquete Memcached está incluido en el repositorio por defecto de Ubuntu. Puedes instalarlo fácilmente utilizando el siguiente comando:

apt install memcached libmemcached-tools -y

Una vez instalado Memcached, inicia el servicio Memcached utilizando el siguiente comando:

systemctl start memcached

Puedes comprobar el estado del Memcached con el siguiente comando:

systemctl status memcached

Deberías obtener la siguiente salida:

? memcached.service - memcached daemon
     Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-10-18 13:09:47 UTC; 29s ago
       Docs: man:memcached(1)
   Main PID: 5525 (memcached)
      Tasks: 10 (limit: 2242)
     Memory: 1.7M
        CPU: 71ms
     CGroup: /system.slice/memcached.service
             ??5525 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid

Oct 18 13:09:47 ubuntu2204 systemd[1]: Started memcached daemon.

Para verificar la versión de Memcached, ejecuta el siguiente comando:

memcached -V

Obtendrás la siguiente salida:

memcached 1.6.14

Por defecto, Memcached escucha en el puerto 11211. Puedes comprobarlo con el siguiente comando:

ss -plunt | grep memcache

Deberías ver la siguiente salida:

tcp   LISTEN 0      1024                        127.0.0.1:11211      0.0.0.0:*    users:(("memcached",pid=5525,fd=22)) 

Instalar la extensión Memcached de PHP

Para utilizar Memcached con aplicaciones basadas en PHP. Necesitarás instalar la extensión Memcached de PHP en tu servidor. Puedes instalarla con Apache utilizando el siguiente comando:

apt install apache2 php libapache2-mod-php php-memcached php-cli -y

A continuación, crea una página PHP de prueba de ejemplo para verificar el Memcached:

nano /var/www/html/info.php

Añade el siguiente código:

<?php
phpinfo();

Guarda y cierra el archivo y reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

A continuación, abre tu navegador y accede a la página PHP utilizando la URL http://your-server-ip/info.php. Deberías ver el Memcached en la siguiente pantalla:

PHP Memcached

A continuación, crea otra página PHP de prueba para verificar si el Memcached funciona o no.

nano /var/www/html/test.php

Añade el siguiente código:

<?php

try

{
$memcached = new Memcached();
$memcached->addServer("127.0.0.1", 11211); 
$response = $memcached->get("key_cache");

if($response==true) 
{
echo "Result coming from caching";
echo $response;
}

else

{
echo "Cache is not created yet, reload again to see changes";
$memcached->set("key_cache", "Hooray! Memcache is working now ...") ;
}
}
catch (exception $e)
{
echo $e->getMessage();
}
?>

Guarda y cierra el archivo y, a continuación, abre tu navegador web y accede a la página PHP de prueba utilizando la URL http://your-server-ip/test.php. Deberías ver la siguiente pantalla:

Prueba PHP memcached

A continuación, vuelve a cargar la página. Esta vez la página se cargará desde la memoria caché como se muestra a continuación:

Resultado PHP de memcahed

Asegura Memcached con Autenticación

Se recomienda utilizar Simple Authentication and Security Layer (SASL) para asegurar Memcached con autenticación basada en usuario. Para ello, deberás instalar el paquete sasl2-bin en tu servidor.

apt install sasl2-bin

A continuación, crea un directorio y un archivo de configuración para la autenticación SASL:

mkdir -p /etc/sasl2
nano /etc/sasl2/memcached.conf

Añade las siguientes líneas:

log_level: 5
mech_list: plain
sasldb_path: /etc/sasl2/memcached-sasldb2

Guarda y cierra el archivo y, a continuación, crea una base de datos SASL con las credenciales de usuario:

saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 user1

Establece tu contraseña como se muestra a continuación:

Password: 
Again (for verification): 

A continuación, cambia la propiedad de la base de datos Memcached:

chown memcache:memcache /etc/sasl2/memcached-sasldb2

A continuación, verifica el Memcached utilizando el siguiente comando:

memcstat --servers="127.0.0.1"

Deberías obtener la siguiente salida:

Server: 127.0.0.1 (11211)
	 pid: 5525
	 uptime: 462
	 time: 1666099048
	 version: 1.6.14
	 libevent: 2.1.12-stable
	 pointer_size: 64
	 rusage_user: 0.110123
	 rusage_system: 0.093906
	 max_connections: 1024
	 curr_connections: 1
	 total_connections: 4
	 rejected_connections: 0
	 connection_structures: 2
	 response_obj_oom: 0
	 response_obj_count: 1
	 response_obj_bytes: 49152
	 read_buf_count: 6
	 read_buf_bytes: 98304
	 read_buf_bytes_free: 32768
	 read_buf_oom: 0
	 reserved_fds: 20
	 cmd_get: 2
	 cmd_set: 1
	 cmd_flush: 0
	 cmd_touch: 0
	 cmd_meta: 0
	 get_hits: 1
	 get_misses: 1
	 get_expired: 0
	 get_flushed: 0
	 delete_misses: 0

A continuación, edita el archivo de configuración de Memcached:

nano /etc/memcached.conf

Añade las siguientes líneas:

-S
-vv

Guarda y cierra el archivo y reinicia el servicio Memcached para aplicar los cambios:

systemctl restart memcached

A continuación, verifica la compatibilidad con SASL utilizando el siguiente comando:

journalctl -u memcached |grep SASL

Si todo va bien, obtendrás la siguiente salida:

Journal file /var/log/journal/d97e195db6584d63aeedfdc35dc83c7f/user-1000.journal is truncated, ignoring file.
Oct 18 13:18:19 ubuntu2204 systemd-memcached-wrapper[14980]: Initialized SASL.

Verificar la autenticación de Memcached

Primero, intenta comprobar de nuevo la conectividad con Memcached sin autenticación:

memcstat --servers="127.0.0.1"

El comando no debería producir salida. Escribe el siguiente comando shell para comprobar su estado:

echo $?

Deberías recibir el siguiente código de estado significa que el comando memcstat ha fallado.

1

A continuación, ejecuta de nuevo el comando Memcached especificando el nombre de usuario y la contraseña:

memcstat --servers="127.0.0.1" --username=user1 --password=password

Obtendrás la siguiente salida:

Server: 127.0.0.1 (11211)
	 pid: 14980
	 uptime: 46
	 time: 1666099143
	 version: 1.6.14
	 libevent: 2.1.12-stable
	 pointer_size: 64
	 rusage_user: 0.077843
	 rusage_system: 0.049072
	 max_connections: 1024
	 curr_connections: 1
	 total_connections: 3
	 rejected_connections: 0
	 connection_structures: 2
	 response_obj_oom: 0
	 response_obj_count: 1
	 response_obj_bytes: 16384
	 read_buf_count: 3
	 read_buf_bytes: 49152
	 read_buf_bytes_free: 16384
	 read_buf_oom: 0

Instalar Memcached para Python

Si quieres integrar Memcached con aplicaciones web basadas en Python, tendrás que instalar la extensión Memcached para Python. Puedes instalarla con el siguiente comando:

apt install python3-pip
pip install pymemcache
pip install python-memcached

Conclusión

En este post, hemos explicado cómo instalar el servidor Memcached en Ubuntu 22.04. También hemos explicado cómo asegurar Memcached con autenticación basada en SASL. Espero que ahora puedas integrar Memcached en tu aplicación para acelerar el rendimiento de la misma. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...