Cómo implementa Redis el almacenamiento en caché de la base de datos
Hay aproximadamente dos medidas:
1. Sincronización de scripts:
1. Escriba su propio script para escribir los datos de la base de datos en redis/memcached.
2. Esto implica cambios en los datos en tiempo real (análisis en tiempo real del binlog de filas de mysql), suscripción incremental de binlog al Canal de Alibaba y recuperación de la sincronización de datos después de la pérdida/invalidación de datos de la capa de caché.
En segundo lugar, la capa empresarial debe hacer lo siguiente:
1. Primero lea la capa de caché nosql y luego lea la capa mysql cuando no haya datos y escriba los datos en ella. nosql.
2. La capa nosql debe hacer un buen trabajo en la distribución de múltiples nodos (consistencia de hash), el reemplazo después de una falla del nodo (hashing de múltiples capas para encontrar nodos de reemplazo adyacentes) y la recuperación después de la fluctuación de datos.
Análisis de implementación de Redis del caché de la base de datos:
Para datos que cambian muy rápidamente, si aún elige el caché estático tradicional (Memocached, sistema de archivos, etc.) para mostrar datos, puede estar en el caché Habrá una gran sobrecarga al acceder y no puede satisfacer bien las necesidades. Redis, una base de datos NoSQL basada en memoria, es muy adecuada para servir como contenedor de datos en tiempo real.
Pero la gente a menudo necesita la confiabilidad de los datos. El uso de MySQL como almacenamiento de datos no causará pérdida de datos debido a problemas de memoria. Al mismo tiempo, también puede utilizar las características de las bases de datos relacionales para lograr muchas funciones. .
La solución de replicación de datos de MySQL a Redis, ya sea MySQL o Redis, tiene su propio mecanismo de sincronización de datos. El más utilizado es el modo Maestro/Esclavo de MySQL, que se implementa analizando el binlog del Maestro. Por lo tanto, la replicación de datos es en realidad un proceso asincrónico, pero cuando todos los servidores están en la misma intranet, el retraso asincrónico es casi insignificante.
En teoría, esto también se puede lograr analizando el archivo binlog de MySQL e insertando los datos en Redis.
Así que elegimos una forma más económica de desarrollar los datos: tomamos prestada la UDF de MySQL ya madura, colocamos los datos de MySQL en Gearman y luego sincronizamos los datos con Redis a través de PHP Gearman Worker. En comparación con el método de análisis binlog, agrega muchos procesos, pero el costo de implementación es menor y es más fácil de operar.