Está en la página 1de 16

MEMCACHED

OMAR JOSE CASTRO CASTRO


¿QUÉ ES MEMCACHED?

Sistema de almacenamiento en caché de datos u objetos gratuito, de


código abierto, distribuido y de naturaleza genérica, diseñado para
acelerar aplicaciones web dinámicas aliviando la carga de la base de
datos.
ARQUITECTURA

• La arquitectura de funcionamiento de Memcached es cliente-servidor, existe un servidor


que guarda datos y un cliente que tiene las ID que le permite acceder a los datos del servidor.
• Memcached se ejecuta en uno o varios equipos que actuará(n) como servidores y de los
cuales, entre otros parámetros, se puede ajustar el tamaño de la memoria que queremos que
utilice para ello.
• Una vez configurados los servidores, las aplicaciones a través de una API podrán guardar
elementos en la caché, recuperarlos o borrarlos, todo esto de una forma muy sencilla mediante
una conexión a través del puerto predeterminado 11211.
ARQUITECTURA
¿CÓMO FUNCIONA?

Su almacenamiento se basa en un modelo clave-valor disponible en tablas


DHT(Distributed Hash Tables) para pequeños fragmentos de datos
arbitrarios (cadenas, objetos) provenientes de los resultados de llamadas a
la base de datos, llamadas a la API o representación de páginas. Los datos
se almacenan de forma distribuida en una serie de nodos que proveen un
servicio eficiente de búsqueda que permite encontrar rápidamente el valor
asociado a una clave
¿CÓMO FUNCIONA?
ESTRATEGIA DE USO:

• Todas las librerías de memcached tienen los siguientes métodos básicos entre otros:
Connect: Donde básicamente pasamos ip, puerto y realizamos la conecxion
Set: Es la instrucción encargada de actualizar el objeto si ya existe o bien lo agrega en caso
de que no exista.
Get: Donde pasamos la clave a recuperar, y nos devuelve los datos.
Add: Se encarga de agregar el objeto sólo si no existe otro con la misma clave.
Delete: Borra el objeto que le indicamos por medio de una clave.
ESTRATEGIA DE USO:
• La estrategia es sencilla y tiene 3 pasos:

1- Justo antes de hacer una query a cualquier base de datos cuyo resultado cambia poco,
generamos una key y miramos si el dato ya esta cacheado.

2. Si lo está, no hacemos la query y devolvemos los datos cacheados.

3. Si no lo está, hacemos la query, cacheamos los datos y los devolvemos.


VENTAJAS
• Precio y Comunidad (Free & Open Source)
• Simple (Memcached está diseñado para ser simple y genérico, de modo que resulta un servicio eficaz y fácil de
usar en el desarrollo de aplicaciones. )
• Compatibilidad (cuenta con versiones para Linux, Windows y MacOS, así mismo Memcached admite la
mayoría de los principales protocolos y lenguajes de programación, como: Python, Java, PHP, C/C#/C++, Perl, Go,
Ruby, JavaScript, Node.js, Protocolo ASCII, Protocolo binario, Protocolos TCP y UDP)
• Veloz (A diferencia de otras bases de datos, como PostgreSQL, Cassandra y MongoDB, que almacenan la
mayoría de sus datos en el disco o en tarjetas SSD, los almacenes de datos en la memoria no tienen que ir
repetidamente a buscar la información en el disco. El resultado: un rendimiento fulgurante con una media de
lectura y escritura de menos de un milisegundo que puede soportar millones de operaciones por segundo.)
• Escalable (La arquitectura multihilo y distribuida de Memcached hace que sea fácil de escalar. Puede dividir sus
datos en varios nodos, lo que le permite añadir nuevos nodos a su clúster para aumentar la capacidad.)
DESVENTAJAS

• Limite de cacheo: (Las claves pueden tener una longitud de hasta 250 bytes y los datos
pueden tener un tamaño de hasta 1 megabyte. El servidor de memcached tiene definida
una memoria de uso. Si cacheamos muchas cosas, se puede producir un overflow y las
claves más antiguas empiezan a expirar para hacer sitio a las nuevas)
• Seguridad (Memcached no lleva autenticación. Es decir, cualquiera con acceso al
servidor, si conoce las keys puede recuperar nuestros datos. Debido a esto, raramente
está instalado en servidores compartidos.)
CASOS DE USO:
Este sistema es empleado por varios de los sitios más activos y visitados de la red, como
Zynga, Youtube, Reddit, Facebook, Netflix, y Twitter entre otros que ofrece un servicio de
Memcached gestionado con NorthScale como parte de su plataforma de servicio.
INSTALAR, CONFIGURAR E INICIALIZAR…

c:\memcached\memcached.exe -d install Instalar servicio


c:\memcached\memcached.exe -d start Inicializar servicio

c:\memcached\memcached.exe -d stop Detener servicio


c:\memcached\memcached.exe -d runservice -m 512 Modificar memoria predeterminada
c:\memcached\memcached.exe -d uninstall Desinstalar cliente

c:\memcached\memcached.exe –h Otros comandos…


EJEMPLO PRACTICO: PYTHON 3

Instalacion de Libreria: pip install python3-Memcached


Ayuda: help(memcache)
Comandos: desde python
import memcache Importar libreria
mc = memcache.Client(['127.0.0.1:11211'], debug=0) Crear cliente y conectarse
mc.set("clave1", "valor 1") Ingresar/actualiza Clave-Valor
value = mc.get("clave 1") Obtener valor de una clave
mc.delete("clave6") Eliminar Clave
mc.incr("clave5") Incrementar valor de una clave
mc.decr("clave5") Decrementar valor de una clave
CÓDIGOS DE EJEMPLO: JAVA
CÓDIGOS DE EJEMPLO: PHP

Las llamadas a funciones Memcached pueden variar en función del lenguaje y la API usada:
MUCHAS GRACIAS

También podría gustarte