Preguntas frecuentes sobre Redis
La segmentación de caché se refiere a los datos a los que la solicitud desea acceder, que no están en el caché, sino en la base de datos. En este caso, la caché suele caducar.
Pero en este momento, debido a que hay muchos usuarios accediendo a este caché al mismo tiempo, esta es una tecla de acceso rápido. Tantas solicitudes de usuarios llegaron al mismo tiempo, sin obtener los datos en el caché, fueron a la base de datos para obtener los datos al mismo tiempo, lo que provocó que el tráfico de la base de datos aumentara, la presión aumentara instantáneamente y colapsara directamente. para que lo veas.
Entonces, hay un caché para los datos y cada solicitud devuelve los datos rápidamente desde el caché, pero en algún momento, el caché deja de ser válido y una solicitud no solicita los datos en el caché. En este punto, decimos que la solicitud ha "violado" el caché.
Para este escenario, generalmente existen tres soluciones correspondientes.
Simplemente establezca una bandera con la ayuda del comando setNX de Redis. El conjunto se publica correctamente; si falla, sondee y espere. Simplemente agregue un candado al actualizar el caché.
Establece tareas programadas en segundo plano para actualizar activamente los datos caducados.
Por ejemplo, si la tecla de acceso rápido "Why" está configurada en el programa y el tiempo de vencimiento está configurado en 10 minutos, el programa en segundo plano irá a la base de datos para consultar los datos y volver a colocarlos en el caché en el momento. octavo minuto y vuelva a configurar el caché en 10 minutos.
De hecho, la máxima encarnación del concepto de renovación de fondo mencionado anteriormente es que nunca caduca.
La idea de simplemente extender la vida en segundo plano actualizará activamente el caché, lo cual es adecuado para escenarios donde el caché cambiará. Habrá inconsistencias en la caché, dependiendo de cuánto tiempo su escenario empresarial pueda tolerar inconsistencias en la caché.
2. Penetración de caché
La penetración de caché se refiere a solicitar datos a los que desea acceder, que no están en el caché o la base de datos. Sin embargo, los usuarios realizan este tipo de solicitudes con alta densidad en un corto período de tiempo y acceden al servicio de base de datos cada vez, lo que ejerce presión sobre la base de datos. En términos generales, este tipo de solicitudes son solicitudes maliciosas.
Hay dos soluciones:
Incluso si no se encuentran datos en la base de datos, almacenamos en caché esta solicitud como una clave, el valor puede ser NULL. La próxima vez que la misma solicitud encuentre este NULL, la capa de caché manejará la solicitud sin ejercer presión sobre la base de datos. Esto es sencillo de implementar y muy económico de desarrollar.
Avalancha de caché
Avalancha de caché significa que la mayoría de los datos en el caché alcanzan el tiempo de vencimiento al mismo tiempo y la cantidad de datos de consulta es enorme. En este punto, no hay nada en el caché, pero sí algo en la base de datos.
La solución para prevenir avalanchas es simplemente pasar el pico.
Al configurar el tiempo de vencimiento de la clave, agregue un tiempo de vencimiento aleatorio corto, lo que puede evitar la avalancha de caché causada por una gran cantidad de cachés que caducan al mismo tiempo.
Si ocurre una avalancha, podemos rechazar algunas solicitudes mediante una degradación del servicio, un disyuntor, una limitación de corriente y otros medios para garantizar un servicio normal. Sin embargo, estos tienen un cierto impacto en la experiencia del usuario.
4.Arquitectura de alta disponibilidad de Redis
Arquitectura de alta disponibilidad de Redis, básicamente todos pueden pensar en el modo maestro-esclavo, el modo centinela y el modo de clúster.
Modo Sentinel:
Realiza principalmente tres tipos de tareas:
Sentinel es en realidad un sistema distribuido y podemos ejecutar varios Sentinel.
Luego, estos centinelas necesitan comunicarse entre sí, intercambiar información y decidir mediante votación si realizar una conmutación por error automática y qué servidor esclavo elegir como nuevo servidor maestro.
El rumor es un protocolo adoptado entre centinelas. Es un protocolo descentralizado que logra la máxima coherencia.
Reglas electorales: