Longitud de la tecla Redis Max y lo que sucede si se excede

Longitud de la tecla Redis Max y lo que sucede si se excede
Redis es un bien conocido almacén de estructura de datos en memoria. Almacena datos utilizando el valor clave

Esta guía analizará la longitud de la llave y su impacto en Redis.

Longitud de la tecla Redis

Las teclas Redis son seguras binarias. Esto significa que cualquier secuencia binaria puede servir como clave. Puede ser cualquier cosa: una cadena, contenido de un archivo JPEG y más. Una cadena vacía también es una clave válida.

Sin embargo, hay un límite para el tamaño de la clave máxima (512 MB). Lo mismo ocurre con el tamaño del valor (512 MB de cualquier tipo de datos).

La longitud de la clave adecuada depende del contexto. En la mayoría de los casos, sin embargo, las teclas demasiado largas o cortas se evitan mejor.

Contras de llaves largas

Si está configurando una clave muy larga, viene con los costos de rendimiento. Mirar la clave en la base de datos de Redis puede requerir varias comparaciones de clave costosas. En la eficiencia de la memoria, las teclas largas son bastante ineficientes.

Si debe usar llaves largas, considere el hashing con buenos algoritmos, como SHA1, SHA256, etc. A cambio de un poco más de potencia de procesamiento, la carga en la memoria se reduce significativamente, sin mencionar la elevación de rendimiento.

Por ejemplo, una clave de 1024 bytes dará como resultado un menor rendimiento y un mayor consumo de memoria. Si está hash con SHA256, el tamaño se reduce a 256 bits (32 bytes) mientras se mantiene una posición única en el servidor Redis.

Contras de claves cortas

El otro lado del espectro es usar teclas concisas. Del ejemplo anterior, el acortamiento de la longitud de la clave es preferible para los beneficios de rendimiento y la eficiencia de los recursos. Sin embargo, sacrificar la claridad por la ligera elevación de rendimiento a menudo no vale la pena.

Vamos a desglosarlo con un ejemplo. Considere la clave U5000F como una forma abreviada de Usuario: 5000: seguidores. Mientras U5000F es la mejor opción en cuanto al rendimiento, es una opción terrible cuando se implementa en código.

Para empezar, el nombre clave es bastante poco intuitivo. Tampoco tiene una indicación clara de cuál es su propósito. Es la semilla perfecta para el desastre en el futuro. A medida que la base de código se hace más grande, los códigos confusos se vuelven más difíciles de mantener. En su lugar, usando Usuario: 5000: seguidores ofrece un gran equilibrio entre el rendimiento y la conveniencia.

¿Qué sucede si Redis se queda sin memoria?

Redis puede manejar una gran cantidad de llaves. Está diseñado para manejar hasta 2^32 teclas! Según las preguntas frecuentes de Redis, el software está probado con 250 millones de claves. En otras palabras, es más probable que se quede sin memoria del sistema antes de alcanzar el límite de redis.

Sin embargo, lo que sucede cuando Redis alcanza la capacidad de memoria máxima? Redis viene con protecciones incorporadas, como limitar el uso de la memoria Max con la ayuda de la directiva MaxMemory en el archivo de configuración de Redis.

$ sudo nano/etc/redis/redis.confusión

Si Redis alcanza el límite de memoria, devuelve un error a los nuevos comandos de escritura. Sin embargo, aún responderá normalmente a leer comandos.

Conclusión

En esta guía, discutimos la longitud de la tecla máxima que Redis acepta. También discutimos la política de gestión cuando Redis excede el límite de memoria asignado. Con este conocimiento, puede decidir cómo implementar redis en sus aplicaciones y scripts.

Hablando de guiones, aprenda más sobre la incorporación de Redis con Lua, Golang, Ruby, etc. Necesito personalizar el comportamiento de Redis? Obtenga más información sobre el archivo de configuración de Redis.