EIVUS

Redis y Memcached para apps alojados

Cachés en memoria en su servidor: cuándo usar cada uno y cómo dimensionar.

Volver al blog

Redis es rico en funciones (estructuras de datos, persistencia, pub/sub); Memcached es simple y multihilo. Ambos reducen carga en la BD. Ejecute en el mismo host para baja latencia o dedique una instancia pequeña. Defina límites de memoria y políticas de expulsión.

Redis vs Memcached

  • Redis: Estructuras de datos (strings, hashes, lists, sets), persistencia opcional, pub/sub, scripting Lua. Single-threaded (por núcleo). Bueno cuando necesita más que key-value o persistencia.
  • Memcached: Key-value simple; multihilo; sin persistencia. A menudo más rápido para caché puro con alta concurrencia. Menor uso de memoria por clave.

Dimensionamiento y colocación

  • Mismo host: Ejecute Redis/Memcached en el servidor de la app para menor latencia. Comparta RAM con la app; defina límite de memoria para que el caché no agote la app.
  • Instancia dedicada: VPS pequeño o contenedor solo para caché cuando hay muchos servidores de app o necesita más memoria. Pequeña latencia de red pero compartida en la capa de app.
  • Memoria: Asigne suficiente para el working set (claves calientes). Defina maxmemory y política de expulsión (ej. allkeys-lru) para que el servidor no haga OOM.

Buenas prácticas

  • Expulsión: Configure política de expulsión (LRU, LFU, etc.) para que cuando la memoria se llene el servidor expulse claves en lugar de fallar.
  • Persistencia (Redis): RDB y/o AOF si necesita durabilidad. Para caché puro puede desactivar persistencia.
  • Seguridad: Bind a localhost o IP privada; use contraseña si el caché está en red compartida. Restrinja acceso con firewall.

Resumen

Redis = funciones ricas y persistencia opcional; Memcached = caché simple y multihilo. Dimensionar memoria para el working set; defina expulsión; ejecute en mismo host para latencia o dedicado para escala.

Clientes que confían en nosotros