Mejora el rendimiento de las aplicaciones y rebaja la carga de las BBDD con Memcached

4min

Memcached es un servicio distribuido para cacheo de objetos en memoria que aumenta el rendimiento de cualquier aplicación web y rebaja la carga de los sistemas de bases de datos, aunque hoy es posible llevar su ámbito más allá y explotarlo en en el marco de desarrollo de prácticamente todos los proyectos IT. Memcached es otra de las herramientas Open Source para los equipos técnicos que podemos desplegar en sólo unos clics en los Servidores Cloud de Arsys.

Básicamente,  Memcached se trata de un sistema de cacheo de objetos en memoria, de alto rendimiento y distribuido. Su objetivo es  servir datos más rápidamente, rebajando el uso de los sistemas de base de datos tradicionales. Generalmente, Memcached se implanta mediante varios servidores de caché, que los clientes son capaces de usar de manera optimizada.

El servicio de almacenamiento de datos de Memcached se organiza por clave/valor, siendo los valores cualquier tipo de objeto o cadena de datos arbitrarios. El almacenamiento se realiza en la memoria, a partir de resultados obtenidos en el acceso a base de datos, llamadas a API o renderización de páginas. Es capaz de ser muy rápido en la entrega de datos, lo que puede ser útil en muchos casos, sobre todo ante aplicaciones de alta demanda.

Podemos usar Memcached en diversos ámbitos, con diversas tecnologías y sistemas gestores de base de datos. Se suele utilizar para escalar servicios de base de datos, de modo que se eviten los cuellos de botella provocados por éstos. Con Memcached se aumenta la cantidad de clientes que pueden trabajar en paralelo, permitiendo también hacer escrituras rápidas sobre la memoria o lecturas sin necesidad de arrancar el pesado motor de base de datos. Su capacidad para mejorar el rendimiento de aplicaciones de alta demanda ha hecho de Memcached una herramienta esencial en el stack de sitios muy concurridos como Wikipedia o WordPress o Flickr.

Índice

Principales características de Memcached

  • Almacenamiento sencillo de llave / valor. Para el servidor de Memcached es indiferente el aspecto de los datos a almacenar. No trata de entender las estructuras de datos ni combinarlas de ninguna manera. Sólo se dedica a situarlas en memoria, de modo que su acceso posterior sea muy rápido.
  • Los datos tienen caducidad. Cualquier información almacenada tiene caducidad, configurable, de modo que se pueda asegurar su frescura. Los valores caducados se reclaman como espacio libre en la memoria sin que el sistema se detenga.
  • Datos distribuidos. En Memcached los datos pueden estar en varios servidores, aunque los servidores no se conocen entre sí. No existe sincronización entre servidores y no hablan entre ellos para ninguna operación, lo que resulta especialmente cómodo a la hora de escalar la aplicación. Básicamente, gracias a la instanciación de nuevos servidores, aumenta la memoria total disponible en el sistema.
  • Lógica en cliente y servidor. La lógica de Memcached está implementada tanto en el cliente como en el servidor. Los clientes son capaces de saber qué servidor deben escoger para escribir o leer algún dato, así como resolver posibles problemas de conectividad. Los servidores son capaces de saber cómo almacenar la información y cómo reutilizar su memoria disponible.
  • Invalidación de la caché. Cuando un cliente necesita invalidar una caché, se dirige directamente al servidor que mantiene ese dato, en lugar de transmitir el nuevo dato a todos los servidores.

Memcached sobre plataformas Cloud

Como explicábamos anteriormente, para obtener todo el potencial de Memcached es recomendable para servicios y aplicaciones con varios  servidores, por lo que su entorno más natural es la Nube. Si queremos desplegarlo en los Servidores Cloud de Arsys, podemos hacer muy fácilmente desde el Catálogo de Aplicaciones, o seleccionando esta herramienta en el Panel de Control de Cloudbuilder Next, en el proceso de creación de los Servidores Cloud (Infraestructura>Servidor>Crear>Imágenes>Aplicaciones).

Además de la sencillez de configuración del servicio de Memcached a lo largo de varias máquinas, los Servidores Cloud ofrecen un aprovisionamiento rápido y facilitan una gran versatilidad y flexibilidad en las configuraciones, en las que podemos modificar los recursos muy cómodamente según la demanda real de la aplicación en cada momento.

Manuel León

Productos relacionados: