Redis 6.0 llega con nuevo protocolo RESP3, mayor soporte, velocidad y más
La nueva version del motor de base de datos Redis 6.0 ya fue liberada y llega como característica principal de esta version el nuevo protocolo RESP3, entre otras cosas más. Para quienes desconocen de este motor de base de datos deben saber que está relacionado con la clase de sistemas NoSQL.
Redis proporciona funciones similares a Memcached para almacenar datos de clave/valor, mejorado con soporte para formatos de datos estructurados como listas, hashes y conjuntos, así como la capacidad de ejecutar scripts de secuencias de comandos del lado del servidor en Lua.
A diferencia de Memcached, Redis proporciona almacenamiento permanente de datos en el disco y garantiza la seguridad de la base de datos en caso de un cierre de emergencia.
Para la gestión de datos, se proporcionan comandos como incremento/decremento, operaciones estándar en listas y conjuntos (unión, intersección), cambio de nombre de teclas, selecciones múltiples y funciones de clasificación.
Se admiten dos modos de almacenamiento: sincronización periódica de datos en disco y registro de cambios en el disco. En el segundo caso, la seguridad completa de todos los cambios está garantizada. Es posible organizar la replicación de datos maestro-esclavo en múltiples servidores, realizada en modo sin bloqueo. El modo de mensajes de publicación / suscripción también está disponible, en el que se crea un canal, cuyos mensajes se distribuyen a los clientes por suscripción.
¿Qué hay de nuevo en Redis 6.0?
Por defecto, se propone un nuevo protocolo RESP3, pero la conexión comienza en modo RESP2 y el cliente cambia al nuevo protocolo solo si se utiliza un nuevo comando al negociar la conexión. RESP3 le permite devolver directamente tipos de datos complejos sin la necesidad de convertir matrices comunes en el lado del cliente y separar los tipos de retorno.
Otro de los cambios que se destaca de esta nueva version es el soporte de lista de control de acceso que permite determinar con precisión qué operaciones puede realizar el cliente y cuáles no.
La implementación de ACL no implica una sobrecarga adicional y prácticamente no tiene ningún efecto en el rendimiento. Los módulos de interfaz también se han preparado para la ACL, lo que le permite crear sus propios métodos de autenticación. Para ver todas las violaciones de ACL registradas, se proporciona el comando ACL LOG. Para generar claves de sesión impredecibles, se ha agregado el comando “ACL GENPASS”, utilizando HMAC basado en SHA256.
También podremos encontrar el soporte para el almacenamiento en caché de datos del lado del cliente. Hay dos modos disponibles para conciliar el caché del lado del cliente con el estado de la base de datos:
- Almacenar en las claves del servidor que el cliente solicitó previamente para informarle de la pérdida de relevancia del registro en el caché del cliente.
- El mecanismo de “difusión”, en el que el cliente se suscribe a ciertos prefijos de clave y el servidor lo notifica en caso de cambiar las claves que se encuentran dentro de estos prefijos. La ventaja del modo de “transmisión” es que no se desperdicia memoria adicional en el servidor para almacenar una tarjeta de valores almacenados en caché en el lado del cliente, sino un menos en un aumento en el número de mensajes transmitidos.
Se agregó Cluster Proxy, un proxy para un clúster de servidores Redis, que permite organizar el trabajo del cliente con varios servidores Redis, como en una instancia. Un proxy puede enrutar solicitudes a nodos con los datos necesarios, conexiones multiplex, reconfigurar el clúster en caso de fallas de nodo y ejecutar solicitudes que abarcan múltiples nodos.
API significativamente mejorada para escribir módulos, esencialmente convirtiendo a Redis en un marco que le permite crear sistemas en forma de módulos adicionales.
El protocolo de replicación PSYNC2 se ha mejorado, lo que ha permitido realizar una resincronización parcial con mayor frecuencia, al aumentar las posibilidades de identificar un desplazamiento común a la réplica y al maestro.
Y también se destaca una carga más rápida de archivos RDB. Dependiendo del relleno del archivo, la aceleración es del 20 al 30%. Ejecución significativamente más rápida del comando INFO en presencia de una gran cantidad de clientes conectados.
Finalmente si quieres conocer más al respecto o descargar la nueva versión, puedes hacerlo desde el siguiente enlace