Memcached es empleado para el almacenamiento en caché de datos u objetos en la memoria RAM, reduciendo así las necesidades de acceso a un origen de datos externo (como una base de datos o una API); esta herramienta diseñada por Danga Interactive, actualmente es muy usada por múltiples sitios web.
La nube elástica de Facilcloud te permite usar esta útil herramienta y ofrece una oferta flexible de pago por uso. Además de brindarte un panel de control integral con el que podrás implementar Memcached de la manera más fácil.
Este open source de cache posee versiones para Linux, Windows y MacOS, y se distribuye bajo licencia de software libre permisiva.
Su funcionamiento se basa en una tabla hash distribuida a lo largo de varios equipos y, conforme ésta se va llenando, los datos que más tiempo llevan sin ser utilizados se borran para dar espacio a los nuevos. Usualmente, las aplicaciones comprueban primero si pueden acceder a los datos a través de Memcached antes de recurrir a un almacén de datos más lento, como puede ser una base de datos.
Este sistema es empleado por varios de los sitios más activos y visitados de la red, como YouTube, Reddit, Playdom, Zynga, Facebook y Twitter.
¿Cómo funciona?
La idea es muy simple, pero muy efectiva. Este es servicio dirigido a un host y un port específico, puede almacenar cadenas de bytes (strings); y de esta manera, permite guardar en memoria una estructura serializada de PHP o Java, un string, o un documento de cualquier formato – ya que siguen siendo cadenas de bytes.
A grandes rasgos, el Memcached Server almacena los strings (internamente denominados ítems), en una gran tabla de hash, y los mapea según la clave que se le asocie a dicho ítem, el cual no puede ser mayor de 1 Mb.
Su arquitectura escalable permite mantener un pool de Memcached Servers, característica fundamental para momentos en donde la cantidad de conexiones no pueda ser gestionada por un único servidor; momento en el que, el pool optará por otro servidor, balanceando la carga de conexiones.
Si bien la comunicación de clientes con servidor es bastante simple, y está basada en comandos; el protocolo Memcached implementa sólo tres comandos de almacenamiento, con pequeñas diferencias en su funcionamiento:
SET: para actualizar el objeto o agregarlo en caso de que no existiera.
ADD: para agregar el objeto sólo si no existe.
REPLACE: actualizar el objeto sólo si existe.
Asimismo, Memcached permite controlar el tiempo de vida de un objeto, indicando su “tiempo de expiración”, en el momento de realizar una operación de almacenamiento. Y a su vez, posee un comando de recuperación: GET; se puede eliminar un objeto mediante el comando, DELETE; adicionalmente el protocolo implementa comandos para recuperar estadísticas, vaciar el cache, utilizar algún tipo de compresión, entre otros.
¿Quiénes usan memcached?
Si bien nace como respuesta a la necesidad de incrementar velocidades de respuesta para peticiones web, en sitios de tráfico masivo; en este momento su uso continúa expandiéndose, a medida que el proyecto toma mayor fuerza con la ayuda de varios desarrolladores de la comunidad Open Source, quiénes constantemente revisan y le agregan nuevas capacidades.
Entre los usuarios más grandes:
Wikipedia
Slashdot
LiveJournal
Fotolog
Hi5
Como Memcached y escalabilidad van de la mano; Facilcloud ofrece a sus clientes esta poderosa herramienta como parte de su oferta flexible y de pago por uso.


0 comentarios