MySQL memcached y alto rendimiento - 💡 Fix My Ideas

MySQL memcached y alto rendimiento

MySQL memcached y alto rendimiento


Autor: Ethan Holmes, 2019

Memcached es un sistema de almacenamiento en caché de objetos distribuido que se desarrolló originalmente para mejorar el rendimiento de LiveJournal y posteriormente se ha utilizado como una estrategia de escalado para varios sitios de alta carga. Sirve como una tabla hash grande y extremadamente rápida que se puede propagar en muchos servidores y se puede acceder a ella simultáneamente desde múltiples procesos. Está diseñado para ser utilizado para casi cualquier necesidad de almacenamiento en caché de back-end, y para aplicaciones web de alto rendimiento, es un gran complemento para una base de datos como MySQL.

En un entorno típico, un desarrollador web puede emplear una combinación de almacenamiento en caché a nivel de proceso y el almacenamiento en caché de consultas MySQL incorporado para obtener ese bit extra de rendimiento de una aplicación. El problema es que el almacenamiento en caché en proceso está limitado al proceso web que se ejecuta en un solo servidor. En una configuración de carga equilibrada, cada servidor mantiene su propio caché, lo que limita la eficiencia y el tamaño disponible del caché. De manera similar, el caché de consultas de MySQL está limitado al servidor en el que se está ejecutando el proceso de MySQL. El caché de consulta también está limitado porque solo puede almacenar en caché los resultados de las filas. Con memcached puede configurar un número de servidores de caché que pueden almacenar cualquier tipo de objeto serializado y estos datos pueden ser compartidos por todos los servidores web con equilibrio de carga. Cool no

Para configurar un servidor memcached, simplemente descarga el demonio y lo ejecuta con algunos parámetros. Desde el sitio web de memcached:

Primero, inicie el demonio de memcached en tantas máquinas de repuesto como tenga. El daemon no tiene un archivo de configuración, solo unas pocas opciones de línea de comandos, solo 3 o 4 de las cuales probablemente utilizarás:

# ./memcached -d -m 2048 -l 10.0.0.40 -p 11211

Esto inicia memcached como un demonio, usando 2 GB de memoria y escuchando en IP 10.0.0.40, puerto 11211. Debido a que un proceso de 32 bits solo puede abordar 4 GB de memoria virtual (generalmente mucho menos, dependiendo de su sistema operativo), si tiene un servidor de 32 bits con 4-64GB de memoria usando PAE, simplemente puede ejecutar múltiples procesos en la máquina, cada uno con 2 o 3GB de memoria.

Es tan simple como se pone. No hay una configuración real. Sin autenticacion. Es solo una tabla de hash gigantor. Obviamente, lo configuraría en una red privada, no direccionable. A partir de ahí, el trabajo de consulta y actualización del caché depende completamente del diseñador de la aplicación. Se le proporcionan las funciones básicas de establecer, obtener y eliminar. Aquí hay un ejemplo simple en PHP:

$ memcache = nuevo Memcache; $ memcache-> addServer (‘10 .0.0.40 ’, 11211); $ memcache-> addServer (‘10 .0.0.41 ’, 11211);

$ valor = "Datos a caché";

$ memcache-> set ('thekey', $ value, 60); echo "Caching por 60 segundos: $ valor
“;

$ recuperado = $ memcache-> get (‘thekey’); echo "Recuperado: $ recuperado
“;

La biblioteca PHP se encarga del trabajo sucio de serializar cualquier valor que pase a la memoria caché, para que pueda enviar y recuperar arreglos o incluso objetos de datos completos.

En la capa de datos de su aplicación, en lugar de golpear inmediatamente la base de datos, ahora puede consultar primero el memcached. Si se encuentra el elemento, no es necesario golpear la base de datos y ensamblar el objeto de datos. Si no se encuentra la clave, seleccione los datos relevantes de la base de datos y almacene el objeto derivado en el caché. Del mismo modo, usted actualiza el caché cada vez que su objeto de datos se modifica y actualiza en la base de datos. Suponiendo que su API esté bien estructurada, solo es necesario realizar algunas ediciones para alterar drásticamente la escalabilidad y el rendimiento de su aplicación.

A continuación, he vinculado algunos recursos donde puede encontrar más información sobre el uso de memcached en su aplicación. Además de la documentación en el sitio web de memcached, Todd Hoff ha compilado una lista de artículos sobre memcached y resumió varias técnicas de rendimiento de memcached. Es una herramienta bastante versátil. Para aquellos de ustedes que han usado memcached, envíenos un comentario en los comentarios y compartan sus consejos y trucos.

Estrategias de Memcached para usar Memcached y MySQL Better Together Tutorial de Memcached y MySQL (PDF)



Puede Que Le Interesen

Cómo hacer: hacer un santuario de amor Woodland

Cómo hacer: hacer un santuario de amor Woodland


Usando la nieve para ver la transferencia de calor.

Usando la nieve para ver la transferencia de calor.


Hacer: Juntos (más parejas colaborativas)

Hacer: Juntos (más parejas colaborativas)


¿Plástico que rastrea tu balance en tiempo real?

¿Plástico que rastrea tu balance en tiempo real?