Saltar al contenido principal

⚙️ Memcached en la plataforma SaveinCloud

Esta guía tiene como objetivo instruir la instalación, configuración, integración y buenas prácticas del stack Memcached versión 1.6.38 en la plataforma PaaS de SaveinCloud, ideal para aplicaciones que demandan alto rendimiento en el caché de datos en memoria.

tip

Memcached es un sistema de caché distribuido en memoria, de altísimo rendimiento, utilizado para reducir la carga en bases de datos y acelerar aplicaciones web.


🚀 Cómo crear tu instancia Memcached

Paso 1 – Creando la instancia

  1. Accede al panel de SaveinCloud.
  2. Haz clic en Nuevo Ambiente.
  3. En la pestaña Cache, selecciona Memcached 1.6.38.
  4. Define los recursos (CPU, RAM y Storage) según la necesidad.
  5. Haz clic en Crear y espera la implementación.

imagem


🔧 Acceso a Memcached

  • Memcached no posee interfaz web. La administración se realiza vía línea de comandos o mediante aplicación cliente.

  • Utiliza cualquier cliente Memcached compatible con tu lenguaje (PHP, Python, Java, Node.js, etc).

  • Para probar conexiones, usa:

telnet <IP_da_instância> 11211

El puerto por defecto de Memcached es 11211.


🌐 Apertura de puertos recomendados

PuertoDescripción
11211Puerto TCP de Memcached
aviso

⚠️ Importante: Por defecto, Memcached no tiene autenticación. Por lo tanto, NUNCA expongas el puerto 11211 a internet. Permite acceso solo desde IPs internas o IPs específicas de tu aplicación.


🔌 Integración simplificada con tu aplicación

🔸 PHP

$mem = new Memcached();
$mem->addServer('IP_DO_MEMCACHED', 11211);
$mem->set('chave_teste', 'valor', 300);
echo $mem->get('chave_teste');

🔸 Python

from pymemcache.client import base
client = base.Client(('IP_DO_MEMCACHED', 11211))
client.set('chave_teste', 'valor')
print(client.get('chave_teste'))

🔸 Node.js

const memjs = require("memjs");
const client = memjs.Client.create("IP_DO_MEMCACHED:11211");
client.set("chave_teste", "valor", { expires: 300 });
client.get("chave_teste", (err, val) => console.log(val.toString()));

🔸 Java

MemcachedClient client = new MemcachedClient(new InetSocketAddress("IP_DO_MEMCACHED", 11211));
client.set("chave_teste", 300, "valor");
System.out.println(client.get("chave_teste"));

✅ Sustituye IP_DO_MEMCACHED por la IP privada de tu instancia.


🔐 Acceso seguro

  • Configura firewall restringiendo el acceso al puerto 11211 solo a las IPs de tu aplicación.

📜 Comandos útiles

🔸 Verificar estado de la conexión

echo stats | nc <IP_da_instância> 11211

🔸 Limpiar todos los cachés

echo flush_all | nc <IP_da_instância> 11211

♻️ Backup y Persistencia

⚠️ Memcached no ofrece persistencia de datos. Todo el contenido almacenado es volátil y reside en la memoria.

Para escenarios que requieren persistencia, considera utilizar Redis, que posee esta funcionalidad.


📈 Monitoreo

  • Métricas importantes:
    • Uso de memoria
    • Tasa de aciertos (Hit Ratio)
    • QPS (Queries per second)
    • Conexiones abiertas

🔄 Escalabilidad

  • Horizontal: Añade nuevas instancias y distribuye las claves entre los nodos.
  • El sharding debe hacerse en la aplicación o utilizando bibliotecas compatibles.

🔥 No hay replicación nativa en Memcached.


🛠️ Troubleshooting – Problemas comunes

❌ No puedo conectar al puerto 11211

  • Verifica si el puerto está liberado en el firewall.
  • Verifica si el servicio está corriendo:
sudo systemctl status memcached

❌ El caché no se está almacenando

  • Verifica si hay memoria disponible.
  • Verifica que la aplicación no esté ejecutando flush_all inadvertidamente.

❌ Alto uso de memoria

  • Ajusta el parámetro -m en el archivo /etc/sysconfig/memcached para limitar la RAM.

📚 Documentación oficial


aviso

⚠️ Todas las configuraciones hechas en este manual son ejemplos simples e hipotéticos. Será necesario realizar adaptaciones según la topología de tu ambiente.

🧠 ¿Dudas?

Contacta con el equipo de soporte técnico de SaveinCloud. ¡Estamos listos para ayudarte!