Red de conocimiento informático - Problemas con los teléfonos móviles - Memoria Redis

Memoria Redis

Utilice redis-cli para iniciar sesión en el servidor Redis y ejecutar el comando info, donde la parte "# Memoria" es el uso de memoria de Redis, por ejemplo:

Este es el contenido en el archivo de configuración:

p>

Redis admite el uso de comandos para modificar dinámicamente el tamaño de la memoria en tiempo de ejecución

Debido a que puede establecer el tamaño máximo de memoria para Redis, a veces el La memoria configurada está agotada. Redis puede establecer el tamaño máximo de memoria que puede ocupar, pero la memoria configurada siempre se agotará. Entonces, si continúas agregando datos a Redis cuando la memoria está agotada, ¿no se agotará la memoria?

De hecho, Redis define varias estrategias para manejar esta situación:

Una estrategia está escrita en el archivo de configuración redis.conf:

Otra estrategia es use el comando

Arriba mencionamos que cuando se agota la capacidad máxima de la memoria disponible de Redis, se puede usar el algoritmo LRU para eliminar la memoria. ¿algoritmo?

Algoritmo LRU aproximado

Redis utiliza el algoritmo LRU aproximado, que no es lo mismo que el algoritmo LRU normal. El algoritmo LRU aproximado elimina datos muestreando aleatoriamente 5 claves (predeterminadas) a la vez y eliminando de esta lista las claves utilizadas menos recientemente.

Redis implementa un algoritmo LRU aproximado agregando un campo adicional de 24 bits a cada clave para almacenar la última vez que se accedió a la clave.

Optimizaciones de Redis 3.0 para LRU aproximado.

Redis 3.0 tiene algunas optimizaciones para el algoritmo LRU aproximado. El nuevo algoritmo mantiene un grupo de candidatos (tamaño 16), los datos del grupo se clasifican según el tiempo de acceso, una clave seleccionada aleatoriamente se coloca en el grupo por primera vez y solo si el tiempo de acceso es menor que el más pequeño. clave en el grupo, se colocan las claves posteriores. Cada clave seleccionada aleatoriamente se coloca en el grupo hasta que el grupo de candidatos esté lleno. Cuando el grupo de candidatos está lleno, si es necesario ingresar una nueva clave, la clave con el último tiempo de acceso más largo (la más reciente) se elimina del grupo.

Cuando llegue el momento de eliminar, simplemente seleccione la clave con el último tiempo de acceso más pequeño del grupo (la clave a la que no se ha accedido durante más tiempo) y elimínela.

El algoritmo LFU es una nueva estrategia de eliminación en Redis 4.0. Su nombre completo es "uso menos frecuente" y su idea central es eliminar las claves en función de la frecuencia con la que se han accedido recientemente, donde las claves a las que rara vez se accede se eliminarán primero y las que se acceden con más frecuencia quedarán atrás. .

El algoritmo LFU refleja mejor la frecuencia con la que se accede a una clave. Si está utilizando el algoritmo LRU y no se ha accedido a una clave durante mucho tiempo y solo se accede a ella de vez en cuando, entonces la clave se considerará datos importantes y no se eliminará, aunque es posible que se acceda a algunas en el futuro. La clave será eliminada. Este no sería el caso si se usara el algoritmo LFU, ya que usar una clave una vez no la convierte en un punto de acceso.

Hay dos estrategias para LFU I***:

Documento de referencia: Entrevistador: La memoria de Redis está llena de datos, ¿se bloqueará?

Fuente de la imagen de portada: http://download.redis.io/logocontest/