Entrevista fue ahorcada serie-Redis caché avalancha

Xiao Zhang Xing se apresuró a ir a la entrevista, ¡pero fue rechazado por el entrevistador debido al problema de avalancha de redis cache!

Xiao Zhang: Hola, entrevistador. Estoy aquí para la entrevista.

Entrevistador: Hola, Xiao Zhang. Leí tu currículum. Usualmente usas redis en tus proyectos. ¿Puedes contarnos sobre los escenarios donde usas redis?

Xiao Zhang: En el caso de redis, estamos acostumbrados principalmente a almacenar algunos datos de configuración de uso común y algunos datos calientes; así como almacenar algunos datos caducados, como tokens emitidos por usuarios de inicio de sesión.

Entrevistador: Bueno, ya que está acostumbrado a almacenar datos calientes. Déjame preguntarte un escenario práctico: "Al consultar datos activos, primero se cargarán desde la caché. Si no se accede a la caché, se recuperará la base de datos para obtener los datos. A menudo, también estableceremos un tiempo de vencimiento para los datos de la caché activa. Entonces mi pregunta es, supongamos que en un momento determinado todas las cachés de los puntos de acceso caducan y se vuelven inválidas, de modo que todas las solicitudes irán directamente a la base de datos y la base de datos se saturará en un instante. fueron, ¿cómo resolvería este problema? "

Xiao Zhang: emm ... Entrevistador, mi estómago está un poco incómodo, regresaré primero. Xiao Zhang!

Entrevistador: Debido a que el caché falla en un área grande al mismo tiempo, o el servicio de caché no puede proporcionar servicios temporalmente, todas las solicitudes se realizan para verificar la base de datos, lo que resulta en una carga excesiva de CPU y memoria de la base de datos e incluso tiempo de inactividad. Este fenómeno se denomina "avalancha de caché" .

La avalancha de caché se puede resolver mediante las siguientes cuatro dimensiones:

  • "Calentamiento de caché"

El significado de calentamiento de datos es visitar los posibles datos con anticipación antes del despliegue formal, de modo que parte de los datos a los que se puede acceder en una gran cantidad se carguen en la caché. Antes de que se produzca un gran acceso simultáneo, active manualmente la carga de diferentes claves en la caché.

  • "Más bloqueo mutex"

Puede usar un bloqueo mutex en la primera solicitud para consultar datos para bloquearlo, y otros subprocesos esperarán si no pueden obtener el bloqueo hasta que el primer subproceso consulte los datos y luego los ponga en redis Cache. Los subprocesos posteriores entran y encuentran que hay un caché, por lo que van directamente al caché.

  • "El tiempo de vencimiento se distribuye uniformemente"

Agregue un factor aleatorio al tiempo de caducidad de la caché, es decir, establezca diferentes tiempos de caducidad para la caché para que los puntos de tiempo de invalidación de la caché sean lo más uniformes posible.

  • "Creación de un sistema de caché de alta disponibilidad"

Redis está diseñado para tener una alta disponibilidad, incluso si los nodos individuales, las máquinas individuales o incluso las salas de computadoras están inactivas, los servicios aún se pueden proporcionar. Por ejemplo, Redis Sentinel y Redis Cluster han logrado una alta disponibilidad.

Entrevistador: Queridos amigos, ¿han aprendido a solucionar el problema de la avalancha de caché? Espero que no se quede perplejo por esta pregunta en futuras entrevistas ~

Xiao Zhang: Después de aprender, volveré la próxima vez. (Sabía que si no mencionaba ningún dato importante, no preguntaría si no mencionaba al entrevistador).

Entrevistador: Ejemplo, si no preguntas esto, ¿no haré otras preguntas? ¡Vuelve a intentarlo la próxima vez!

Fin

Compartir productos secos

Aquí hay un pequeño regalo para todos, siga la cuenta oficial, ingrese el siguiente código, puede obtener la dirección del disco de red de Baidu, ¡sin rutinas!

001: "Un libro de lectura obligada para programadores"
002: "Construyendo desde cero una arquitectura de servicio back-end y una arquitectura de operación y mantenimiento para pequeñas y medianas empresas de Internet"
003: "Soluciones de alta concurrencia para empresas de Internet"
004: "Internet Video de enseñanza de arquitectura "
006: SpringBoot Realización del sistema de
pedidos " 007: "Video de SpringSecurity Real Combat"
008: "Video de enseñanza de Hadoop Actual Combat"
009: "Tencent 2019 Techo Developer Conference PPT"

010: grupo de intercambio de WeChat

Artículos calientes recientes arriba

1. Soluciones para la renovación automática de JWT Token

2. Procesamiento de eventos asincrónico de trampas de desarrollo SpringBoot

3. El camino de la alfabetización en hardware para arquitectos y servidores

4. Plataforma de monitoreo basada en la configuración del entorno Prometheus y Grafana

5. Mensaje de transacción avanzada de RocketMQ

Sabía que estabas "mirando"

Supongo que te gusta

Origin blog.csdn.net/jianzhang11/article/details/112386700
Recomendado
Clasificación