Análisis de la estrategia de eliminación de claves caducadas de Redis

  • Cómo Redis elimina las claves caducadas: nombre de conjunto daniel 3600

    • Eliminación perezosa:

      • Concepto: cuando algunos clientes intentan acceder a ella, la clave será descubierta y expirará activamente.

      • Deje que la clave caduque independientemente, pero cada vez que obtenga una clave del espacio de claves, verifique si la clave obtenida ha caducado, si caduca, elimine la clave

      • Características: compatible con CPU , pero si una clave ya no se usa, siempre existirá en la memoria, causando desperdicio

         

    • Eliminación programada:

      • Concepto: al configurar el tiempo de vencimiento de la clave, cree un temporizador (temporizador), deje que el temporizador ejecute la operación de eliminación de la clave inmediatamente cuando llegue el tiempo de vencimiento de la clave.

         

    • Eliminar regularmente:

      • Después de un tiempo, el programa verificará la base de datos y eliminará las claves caducadas. En cuanto a cuántas claves caducadas deberían eliminarse,

        Y el algoritmo determina el número de bases de datos a comprobar. Eso es para configurar una tarea cronometrada, como eliminar claves caducadas cada 10 minutos; los intervalos pequeños ocuparán la CPU y los intervalos grandes desperdiciarán memoria

      • Por ejemplo, Redis procesa cada segundo:

      1. Pruebe 20 claves aleatorias para la detección de caducidad relacionada.

      2. Elimina todas las claves caducadas.

      3. Si más del 25% de las claves caducan, repita el paso 1.

     

El servidor Redis en realidad usa dos estrategias de eliminación diferida y eliminación periódica: al usar estas dos estrategias de eliminación juntas, el servidor puede lograr un buen equilibrio entre el uso racional del tiempo de CPU y evitar desperdiciar espacio en la memoria.

 

¿Cómo se implementa la estrategia de eliminación diferida? A través de la función expireIfNeeded, juzgamos si la clave expira cuando manipulamos la clave

¿Cómo se implementa la estrategia de eliminación regular? A través de la función activeExpireCycle, cuando se ejecuta la función serverCron, se llamará a la función activeExpireCycle. El diccionario expires del servidor se recorre varias veces dentro del tiempo especificado para verificar aleatoriamente el tiempo de expiración de una parte de la clave y eliminar la clave expirada.

Supongo que te gusta

Origin blog.csdn.net/qq_41023026/article/details/89739343
Recomendado
Clasificación