Redis de la estrategia de la memoria, en este aspecto es suficiente!

Redis como la memoria de base de datos de código abierto más popular actual, el rendimiento es muy alto, de acuerdo con la representación oficial de datos Redis la velocidad de lectura es de 110 000 veces / s, velocidad de escritura es 81000 veces / s. la persistencia de datos Redis y es compatible con numerosos estructura de datos almacenada, de modo maestro-esclavo, copia de seguridad de datos y otras funciones.

Sin embargo, el uso a largo plazo Redis como caché, es inevitable que los cuellos de botella de encuentro de espacio de almacenamiento de memoria, cuando la memoria Redis más allá del límite de memoria física, la memoria tendrá el intercambio de datos frecuente con el disco, por lo que el rendimiento Redis dramáticamente. En este punto la forma de eliminar los datos innecesarios para liberar espacio para almacenar nuevos datos se vuelve particularmente importante.

En este sentido, los Redis en un entorno de producción, utilizando configuración de los parámetros manera MaxMemory para limitar el tamaño de la memoria. Cuando la memoria de almacenamiento real más allá de los valores de parámetros MaxMemory, los desarrolladores pueden eliminar estos métodos --Redis estrategias de memoria para determinar cómo hacer que el nuevo espacio de seguir apoyando el trabajo de lectura y escritura.

estrategia de memoria, de modo Redis es la forma de trabajar fuera de él?

En primer lugar, los iniciados cliente la aplicación necesita más memoria;

En segundo lugar, el uso de memoria de verificación Redis, si el uso de memoria real ha superado maxmemory, Redis será seleccionado de acuerdo con eliminar las políticas claves inútiles configurados por los usuarios;

Por último, compruebe que los datos no es ningún problema, la implementación exitosa de la tarea.

La versión actual soporta la Redis3.0 estrategia de eliminación Hay seis:

1. volátil-LRU: seleccionar los datos menos recientemente utilizado previstas del conjunto de datos del tiempo de expiración (server.db [i] .expires) en. La clave no está establecido un tiempo de caducidad no será eliminado, por lo que puede aumentar el espacio de memoria al mismo tiempo asegurar que las necesidades de datos persistentes no se pierda.

2. volátil-TTL: mecanismo de eliminación utilizando la adición LRU, estrategias sustancialmente similar volátil-LRU, la selección de los datos a ser eliminado del conjunto de datos ha expirado el tiempo de caducidad de ajuste (server.db [i] .expires), menor es el valor de TTL más preferentemente eliminados.

3. volátil-azar: el tiempo de expiración se ha establecido a partir del conjunto de datos (server.db [i] .expires) seleccionado arbitrariamente de los datos. Cuando se alcanza no puede ser escrito a conjuntos de datos no de caducidad puede ser al azar eliminar una tecla en el espacio de clave principal de la estrategia de eliminación el límite de memoria.

4. AllKeys-LRU: seleccionado del conjunto de datos (server.db [i] .dict) los datos menos recientemente utilizado fuera de la estrategia a ser eliminado de la clave es una colección de todas las claves, el conjunto de claves y no caducado.

5. AllKeys-aleatoria: seleccionar datos arbitrarios partir de los datos establecidos (server.db [i] .dict) en.

6. sin enviction: prohíbe los datos de expulsión, es decir, cuando la memoria no es suficiente para dar cabida a los nuevos datos, nuevas escrituras serán de error, la solicitud podrá proceder, tareas en línea no puede continuar, utilizando la política de no-enviction pueden asegurar que los datos no debe ser perdido, esto es un fuera de la política por defecto del sistema.

Seis tipos de Redis está fuera de la estrategia mencionada, en el uso de estas seis estrategias, los desarrolladores necesitan sistemas de acuerdo a sus características, el derecho de seleccionar o modificar la expulsión.

1. En Redis, la parte más alta de la frecuencia de acceso a datos, el resto de la conexión a una frecuencia más baja, o no se puede predecir a partir de datos de frecuencia, ajuste AllKeys-LRU es más apropiado.

2. Si todas las probabilidades de acceso a datos más o menos igual, se puede elegir AllKeys-aleatoria.

3. Si los desarrolladores necesitan para determinar el orden de los datos de fecha mediante el establecimiento de diferentes TTL, esta vez se puede seleccionar la política volátil-TTL.

4. Si desea que algunos de los datos se pueden almacenar a largo plazo, mientras que algunos de los datos pueden ser eliminados, seleccione volátil-LRU o volátil-aleatorios son relativamente buenas.

5. A medida que expiran conjunto consume memoria adicional, si va a evitar la pérdida de la memoria Redis en esto, se puede elegir la estrategia AllKeys-LRU, de modo que ya no se puede establecer el tiempo de expiración, el uso eficiente de la memoria.

Redis característica de caché se implementa archivo edis.c función freeMemoryIfNeeded. Si maxmemory se establece, a continuación, ejecutar el comando cada vez el dinero, esta función será llamada para determinar si hay suficiente memoria, memoria libre, se devuelve un error. Si no hay suficiente memoria evitará la ejecución de instrucciones principal indicador establecido REDIS_COM_DENYOOM programa de lógica, su comando de retorno no está permitido cuando la memoria usada> 'maxmemory' mensaje de error.

Publicados 776 artículos originales · elogios ganado 50 · Vistas de 150.000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_44018338/article/details/105261280
Recomendado
Clasificación