Cómo instalar y configurar Memcached en Debian

Memcached es un sistema de caché de objetos de memoria distribuida y de código abierto que mantiene en memoria los datos consultados con más frecuencia. Esto reducirá el tiempo de carga de los datos y facilitará el acceso a la base de datos. Puedes utilizar Memcached para acelerar las aplicaciones web dinámicas aliviando la carga de la base de datos. Es sencillo, fácil de implementar y se puede integrar con varios lenguajes de programación, como PHP, Python y otros.

En este tutorial, te mostraré cómo instalar Memcached en Debian 11.

Requisitos previos

  • Un servidor que ejecute Debian 11.
  • Una contraseña de root configurada en el servidor.

Instalar Memcached en Debian 11

Por defecto, Memcached está incluido en el repositorio por defecto de Debian 11. Puedes instalarlo ejecutando el siguiente comando:

apt-get install memcached libmemcached-tools -y

Una vez instalado Memcached, inicia el servicio Memcached y habilítalo para que se inicie al reiniciar el sistema:

systemctl start memcached
systemctl enable memcached

También puedes comprobar el estado del Memcached utilizando 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 Mon 2021-11-01 10:12:25 UTC; 14s ago
       Docs: man:memcached(1)
   Main PID: 28398 (memcached)
      Tasks: 10 (limit: 4679)
     Memory: 3.1M
        CPU: 28ms
     CGroup: /system.slice/memcached.service
             ??28398 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid

Nov 01 10:12:25 debian11 systemd[1]: Started memcached daemon.

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

ss -antpl | grep memcached

Obtendrás la siguiente salida:

LISTEN 0      1024       127.0.0.1:11211      0.0.0.0:*    users:(("memcached",pid=28398,fd=26))

Configurar Memcached

El archivo de configuración por defecto de Memcached se encuentra en /etc/memcached.conf. Puedes editarlo con el siguiente comando:

nano /etc/memcached.conf

Puedes cambiar algunas opciones por defecto según tus necesidades:

-l 127.0.0.1
-U 0
-p 11211
-u memcache
-m 2000

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

systemctl restart memcached

Habilitar Memcached para aplicaciones PHP y Python

Para utilizar Memcached con una aplicación basada en PHP, tendrás que instalar la biblioteca Memcached PHP en tu servidor. Puedes instalarla utilizando el siguiente comando:

apt-get install php-memcached -y

Si quieres habilitar la compatibilidad con Python y Perl, ejecuta el siguiente comando:

apt-get install python3-pymemcache libcache-memcached-libmemcached-perl -y

Una vez instaladas todas las bibliotecas, puedes pasar al siguiente paso.

Verificar Memcached

Memcached ya está instalado y configurado. Ahora, crea un sencillo script PHP para verificar el Memcached. Primero, instala Apache y PHP con el siguiente comando:

apt-get install apache2 php libapache2-mod-php -y

Una vez instalados todos los paquetes, crea un archivo info.php con el siguiente comando:

nano /var/www/html/info.php

Añade las siguientes líneas:

<?php
// Show all information, defaults to INFO_ALL
phpinfo();
?>

Guarda y cierra el archivo y, a continuación, abre tu navegador web y accede a la URL http://your-server-ip/info.php. Deberías ver que Memcached está activado en la siguiente página de prueba:

extensión memcached PHP

Acceder a la interfaz CLI de Memcached

Memcached proporciona una interfaz de línea de comandos para interactuar con Memcached directamente utilizando la línea de comandos.

En primer lugar, conéctate a Memcached utilizando el siguiente comando:

telnet localhost 11211

Una vez conectado, obtendrás la siguiente salida:

Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Ahora, comprueba el estado de Memcached utilizando el siguiente comando:

stats

Deberías ver alguna información importante como el tiempo de actividad, el número de elementos en la caché y el número de conexiones de clientes a la instancia en la siguiente salida:

STAT pid 28398
STAT uptime 222
STAT time 1635761765
STAT version 1.6.9
STAT libevent 2.1.12-stable
STAT pointer_size 64
STAT rusage_user 0.049028
STAT rusage_system 0.049054
STAT max_connections 1024
STAT curr_connections 1
STAT total_connections 2
STAT rejected_connections 0
STAT connection_structures 2
STAT response_obj_oom 0
STAT response_obj_count 1
STAT response_obj_bytes 16384
STAT read_buf_count 2
STAT read_buf_bytes 32768
STAT read_buf_bytes_free 0
STAT read_buf_oom 0
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT cmd_meta 0
STAT get_hits 0
STAT get_misses 0
STAT get_expired 0
STAT get_flushed 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT slab_reassign_rescues 0
STAT slab_reassign_chunk_rescues 0
STAT slab_reassign_evictions_nomem 0
STAT slab_reassign_inline_reclaim 0
STAT slab_reassign_busy_items 0
STAT slab_reassign_busy_deletes 0
STAT slab_reassign_running 0
STAT slabs_moved 0
STAT lru_crawler_running 0
STAT lru_crawler_starts 3
STAT lru_maintainer_juggles 272
STAT malloc_fails 0
STAT log_worker_dropped 0
STAT log_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT unexpected_napi_ids 0
STAT round_robin_fallback 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT slab_global_page_pool 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evicted_active 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
STAT moves_to_cold 0
STAT moves_to_warm 0
STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0

Conclusión

Enhorabuena! has instalado con éxito Memcached en Debian 11. Ahora puedes integrar Memcached con aplicaciones basadas en PHP o Python y aumentar la velocidad de tu sitio web. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...