La nueva versión de Redis 6.0 ya está disponible después de cuatro meses del lanzamiento de la versión candidata RC1. Para quienes desconocen de Redis, deben saber que este es un sistema escalable de gestión de bases de datos de valores clave escrito en ANSI-C y distribuido bajo la licencia BSD.
Esta versión estable viene con modificaciones notables a las nuevas características, como por ejemplo el nuevo protocolo RESP3, la función «Caché del lado del cliente», ACL (lista de control de acceso), comandos Redis, archivos RDB, etc.
Principales novedades de Redis 6.0
Una de las principales novedades de esta nueva versión es RESP3, un nuevo protocolo opcional, que según sus desarrolladores era necesario porque el antiguo protocolo, RESP2, no era lo suficientemente semántico. La idea principal con RESP3 era la posibilidad de devolver tipos de datos complejos directamente desde Redis, sin que el cliente tuviera que saber qué tipo convertir las «matrices planas» o los números devueltos en lugar de los valores booleanos apropiados, etc.
Otra de las novedades de Redis 6.0 es ACL el cual está destinado al aislamiento para proteger los datos de los errores de la aplicación. Lo positivo de esta adición, es que ahora hay una interfaz de módulo Redis para ACL, que permite escribir métodos de autenticación personalizados.
El Caché mejorado en el lado del cliente, es otra de las novedades de esta versión, ya que se ha rediseñado y ha abandonado el enfoque de almacenamiento en caché de nicho en favor del uso de nombres clave, que, son el mejor enfoque. Además de eso, la función se complementó con el «modo de transmisión»que podría ser muy útil agregar un nuevo modo que requiera que el servidor mantenga poco o ningún estado en los clientes.
Cuando se utiliza el modo de transmisión, el servidor ya no intenta recordar las claves solicitadas por cada cliente. Por el contrario, los clientes se suscriben a prefijos clave. El resultado de este cambio es que no hay más mensajes, pero solo para los prefijos seleccionados y no hay esfuerzo de memoria en el lado del servidor.
Además, el modo «opt-in/opt-out» ahora es compatible, por lo que es posible que los usuarios que no usan el modo de transmisión le digan al servidor exactamente lo que el cliente pondrá caché para reducir la cantidad de mensajes de invalidación.
Por otra parte podremos encontrar mejoras en ACL, que en primer lugar, un nuevo comando ACL LOG ahora le permite ver a todos los clientes que violan las ACL, que acceden a comandos que no deberían y que acceden a claves a las que no pueden acceder acceso o cuyos intentos de autenticación han fallado.
En segundo lugar, la función ACL GENPASS se ha vuelto a implementar, ahora utiliza HMAC basado en SHA256 y acepta un argumento opcional para decirle al servidor cuántos bits de cadena pseudoaleatorios inutilizables desea generar. Redis genera una clave interna cuando /dev/urandom se inicia y luego usa HMAC en modo contador para generar los otros números aleatorios: de esta manera, puede abusar de la API y llamarla cada vez que deseo, porque será muy rápido, explicó el programador.
La mejora de PSYNC2 permite que en Redis ahora podrá resincronizarse parcialmente y con mayor frecuencia. De hecho, ahora puede reducir los PING finales en el protocolo, para que sea más probable que las réplicas y los maestros puedan encontrar un desplazamiento común.
Mejora de los comandos de Redis con retraso de tiempo, no solo BLPOP y otros comandos que anteriormente aceptaban segundos, ahora aceptan números decimales, sino que también se ha mejorado la resolución real para que nunca sea inferior al valor «HZ» actual, independientemente del número de clientes conectados.
Finalmente otro de los cambios importantes de esta version son los archivos RDB mejorados, con lo cual ahora son más rápidos de cargar. Dependiendo de la composición real del archivo (valores más grandes o más pequeños), puede esperar una mejora del 20 al 30%, dependiendo del programador. El comando INFO también es más rápido ahora cuando hay varios clientes conectados, un problema de larga data que finalmente se ha resuelto.
Redis 6.0.0 ha estado disponible para descargar desde su sitio web oficial.