Cómo vaciar el contenido de un servidor Memcached mediante la línea de comandos

Cómo vaciar el contenido de un servidor Memcached mediante la línea de comandos

Respuesta rápida: Cómo vaciar Memcached desde la consola

Para vaciar todo el contenido almacenado en una instancia de Memcached por línea de comandos sin reiniciar el servicio, se envía la instrucción flush_all al puerto del servidor (por defecto 11211). El comando más directo en Linux/Unix utilizando netcat es:

echo "flush_all" | nc localhost 11211

Esta acción marca como expiradas instantáneamente todas las claves almacenadas en memoria, obligando a las aplicaciones web conectadas a regenerar la caché desde la base de datos.

Requisitos previos y verificación de conectividad

Antes de ejecutar comandos de limpieza, es indispensable verificar la dirección IP y el puerto de escucha del daemon de Memcached, así como confirmar que posees acceso al servidor mediante SSH.

  • Host predeterminado: 127.0.0.1 (localhost) o la IP privada de la instancia.
  • Puerto predeterminado: 11211 TCP.
  • Herramientas necesarias: nc (netcat) o telnet.

Método 1: Vaciar Memcached utilizando Netcat (nc)

El uso de netcat (o nc) es un método habitual en administración de sistemas debido a su sencillez para canalizar órdenes directamente al puerto del servicio.

Sintaxis en instancias locales

echo "flush_all" | nc localhost 11211

Sintaxis en servidores remotos o direcciones IP específicas

Línea de comandos ejecutando la instrucción flush_all para vaciar Memcached
Ejecución del comando flush_all en la consola para la gestión de caché en Memcached.

Método 2: Vaciar Memcached mediante una sesión de Telnet

Si prefieres interactuar directamente con el protocolo de texto de Memcached de forma manual, puedes emplear la utilidad telnet.

Paso 1: Establecer conexión con la instancia

telnet 127.0.0.1 11211

Paso 2: Enviar el comando de purga

Una vez conectada la consola, escribe la orden flush_all y presiona Enter:

flush_all

Al recibir la respuesta OK, introduce para cerrar la sesión activa.

Efectos técnicos y advertencias de seguridad

Es importante comprender cómo procesa Memcached la orden de vaciado antes de ejecutarla en producción:

  • No libera memoria RAM del sistema: El comando flush_all no reduce el uso de memoria reflejado por el sistema operativo. Simplemente invalida las claves existentes. La memoria se reutilizará a medida que se escriban nuevos datos.
  • Aumento de carga en base de datos: Al purgar los datos guardados en caché, las peticiones de los usuarios accederán temporalmente a la base de datos principal hasta que la memoria se vuelva a poblar.
  • Opción de deshabilitación: En entornos administrados como Google Cloud Memorystore para Memcached, es posible inhabilitar esta instrucción mediante la opción disable-flush-all (bandera -F). Si está inhabilitada, la ejecución no realizará la limpieza.

Verificación del vaciado de datos

Para comprobar que el servicio está respondiendo y consultar su estado técnico, puedes solicitar las estadísticas de la instancia:

echo "stats" | nc localhost 11211

Preguntas frecuentes sobre vaciar Memcached

¿Puedo revertir la ejecución del comando flush_all?

No. El comando invalida de forma inmediata y permanente la vigencia de todas las claves almacenadas en la memoria volátil. No existe mecanismo de deshacer (undo) ni copia de seguridad interna dentro del proceso en RAM.

¿Es necesario reiniciar el servicio memcached tras el vaciado?

No es necesario. La ventaja de utilizar flush_all mediante la línea de comandos es invalidar el contenido sin la interrupción de red que genera reiniciar el proceso daemon del sistema.


Publicado

en

,

por

Etiquetas: