Lanzamiento del DBMS Redis 6.0

Preparado Lanzamiento de DBMS redis 6.0, perteneciente a la clase de sistemas NoSQL. Redis proporciona funciones similares a Memcached para almacenar datos clave/valor, mejoradas por la compatibilidad con formatos de datos estructurados como listas, hashes y conjuntos, y la capacidad de ejecutar scripts de controlador Lua del lado del servidor. Código de proyecto suministrado bajo licencia BSD. Módulos adicionales que ofrecen capacidades avanzadas para usuarios empresariales como RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom desde el año pasado. suministrado bajo la licencia propietaria RSAL. El proyecto continúa el desarrollo de versiones abiertas de estos módulos bajo la licencia AGPLv3. Buena forma.

A diferencia de Memcached, Redis proporciona almacenamiento persistente de datos en disco y garantiza la seguridad de la base de datos en caso de un cierre de emergencia. El código fuente del proyecto se distribuye bajo licencia BSD. Las bibliotecas cliente están disponibles para los lenguajes más populares, incluidos Perl, Python, PHP, Java, Ruby y Tcl. Redis admite transacciones que le permiten ejecutar un grupo de comandos en un solo paso, lo que garantiza la coherencia y la coherencia (los comandos de otras solicitudes no pueden interferir) en la ejecución de un conjunto determinado de comandos y, en caso de problemas, le permite retroceder. cambios. Todos los datos están completamente almacenados en caché en la RAM.

Se proporcionan comandos como incremento/disminución, lista estándar y operaciones de conjunto (unión, intersección), cambio de nombre de clave, selecciones múltiples y funciones de clasificación para la gestión de datos. Se admiten dos modos de almacenamiento: sincronización periódica de datos en el disco y mantenimiento de un registro de cambios en el disco. En el segundo caso, se garantiza total seguridad de todos los cambios. Es posible organizar la replicación de datos maestro-esclavo en varios servidores, realizada en modo sin bloqueo. También está disponible un modo de mensajería de “publicación/suscripción”, en el que se crea un canal cuyos mensajes se distribuyen a los clientes mediante suscripción.

Llave mejorasagregado en Redis 6.0:

  • De forma predeterminada, se propone el nuevo protocolo RESP3, pero la configuración de la conexión comienza en el modo RESP2 y el cliente cambia al nuevo protocolo solo si se utiliza el nuevo comando HELLO al negociar la conexión. RESP3 le permite devolver directamente tipos de datos complejos sin la necesidad de convertir matrices genéricas en el lado del cliente y separando los tipos de devolución.
  • Soporte de lista de control de acceso (ACL), permitiéndole determinar con precisión qué operaciones puede realizar el cliente y cuáles no. Las ACL también permiten proteger contra posibles errores durante el desarrollo, por ejemplo, a un controlador que realiza solo la operación BRPOPLPUSH se le puede prohibir ejecutar otras operaciones, y si la llamada FLUSHALL agregada durante la depuración se olvida accidentalmente en el código de producción, esto no generar problemas. La implementación de una ACL no genera ninguna sobrecarga adicional y prácticamente no tiene impacto en el rendimiento. También se han preparado módulos de interfaz para ACL, lo que 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 agregó el comando "ACL GENPASS" utilizando HMAC basado en SHA256.
  • Apoyar SSL / TLS para cifrar el canal de comunicación entre el cliente y el servidor.
  • Apoyar Almacenamiento en caché de datos en el lado del cliente. Para conciliar la caché del lado del cliente con el estado de la base de datos, hay dos modos disponibles: 1. Recordar en el servidor las claves que el cliente solicitó previamente para informarle sobre la pérdida de relevancia de la entrada en la caché del cliente. 2. El mecanismo de “difusión”, en el que el cliente se suscribe a ciertos prefijos de clave y el servidor le notifica si las claves que se encuentran bajo estos prefijos cambian. La ventaja del modo "difusión" es que el servidor no desperdicia memoria adicional almacenando un mapa de valores almacenados en caché en el lado del cliente, pero la desventaja es que aumenta la cantidad de mensajes transmitidos.
  • El intermediario de mensajes Disque, que le permite utilizar Redis para procesar colas de mensajes, se ha eliminado de la estructura básica en módulo separado.
  • Добавлен Proxy de clúster, un proxy para un clúster de servidores Redis, que permite a un cliente organizar el trabajo con varios servidores Redis como si fueran una sola instancia. El proxy puede enrutar solicitudes a nodos con los datos necesarios, multiplexar conexiones, reconfigurar el clúster si se detectan fallas en los nodos y ejecutar solicitudes que abarcan varios nodos.
  • La API para escribir módulos se ha mejorado significativamente, esencialmente convirtiendo a Redis en un marco que le permite crear sistemas en forma de módulos complementarios.
  • Se ha implementado un modo de replicación en el que los archivos RDB se eliminan inmediatamente después de su uso.
  • Se ha mejorado el protocolo de replicación PSYNC2, lo que ha permitido realizar resincronizaciones parciales con mayor frecuencia, aumentando las posibilidades de identificar offsets comunes a la réplica y al maestro.
  • Se ha acelerado la carga de archivos RDB. Dependiendo del contenido del archivo, la aceleración oscila entre el 20 y el 30%. La ejecución del comando INFO se ha acelerado significativamente cuando hay una gran cantidad de clientes conectados.
  • Se ha agregado un nuevo comando STRALGO con la implementación de complejos algoritmos de procesamiento de cadenas. Actualmente, sólo está disponible un algoritmo LCS (subsecuencia común más larga), que puede resultar útil al comparar secuencias de ARN y ADN.

Fuente: opennet.ru

Añadir un comentario