¿Qué es memcached?

Memcached es un sistema libre y open-source de caché distribuido de objetos en memoria.

Memcached tiene versiones para Linux, Windows y MacOS y se distribuye bajo licencia open source.

Memcached tiene un diseño muy simple pensando en un simple despliegue y acceso.

Es empleado por múltiples sitios web:

para el almacenamiento en caché de datos en la memoria RAM, reduciendo así las necesidades de acceso a un origen de datos externo:

Ofrece APIs cliente para la mayoría de lenguajes como C, C++, Java, PHP, Python, Perl, .NET, …

Incluyendo protocolo Telnet:

En el caso de Java hay múltiples librerías e integraciones, por ejemplo con Spring que permite usarlo así:

Dada su arquitectura es importante conocer cómo funciona memcached para saber si encaja en nuestro escenario, ahí van algunas consideraciones:

· Memcached usa una arquitectura cliente-servidor: Los clientes usan librerías cliente para acceder a los servidores, cada cliente mantiene una lista de todos los servidores, los servidores no se comunican entre ellos (link)

· Los servidores mantienen un array asociativo clave-valor (los datos pueden tener un tamaño de hasta 1 Mbyte). Por tanto no permite realizar consultas complejas ni puede actuar como DataGrid.

· El servidor mantiene los valores en RAM

si un servidor agota su memoria, descarta los valores más antiguos.

· Memcached está pensada como una caché transitoria de por ejemplo una base de datos como en el ejemplo: (aunque se puede complementar con MemcacheDB y/o con Membase)

· Memcached está pensado para actuar en redes corporativas "de confianza", donde los clientes se pueden conectar libremente a cualquier servidor. Si se quiere implementar seguridad se debe compilar con el soporte de autenticación SASL.

Deja un comentario