Lanzamento do DBMS Redis 6.0

Preparado Versión de DBMS Redis 6.0, pertencente á clase de sistemas NoSQL. Redis ofrece funcións semellantes a Memcached para almacenar datos de clave/valor, melloradas pola compatibilidade con formatos de datos estruturados como listas, hash e conxuntos, e a posibilidade de executar scripts de controlador Lua no servidor. Código do proxecto subministrado baixo licenza BSD. Módulos adicionais que ofrecen capacidades avanzadas para usuarios empresariais como RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom desde o ano pasado subministrado baixo a licenza propietaria RSAL. O proxecto continúa co desenvolvemento de versións abertas destes módulos baixo a licenza AGPLv3 GoodFORM.

A diferenza de Memcached, Redis proporciona un almacenamento persistente de datos no disco e garante a seguridade da base de datos en caso de apagado de emerxencia. O código fonte do proxecto distribúese baixo a licenza BSD. As bibliotecas cliente están dispoñibles para os idiomas máis populares, incluíndo Perl, Python, PHP, Java, Ruby e Tcl. Redis admite transaccións, que permiten executar un grupo de comandos nun só paso, garantindo a coherencia e a coherencia (os comandos doutras solicitudes non poden interferir) na execución dun determinado conxunto de comandos e, en caso de problemas, permitíndolle retroceder. cambios. Todos os datos están completamente almacenados na memoria RAM.

Para a xestión de datos ofrécense comandos como aumentar/disminución, lista estándar e operacións de conxunto (unión, intersección), cambio de nome das teclas, seleccións múltiples e funcións de clasificación. Admítense dous modos de almacenamento: sincronización periódica de datos ao disco e mantemento dun rexistro de cambios no disco. No segundo caso, a seguridade total de todos os cambios está garantida. É posible organizar a replicación de datos mestre-escravo a varios servidores, levada a cabo en modo non bloqueante. Tamén está dispoñible un modo de mensaxería “publicar/subscribirse”, no que se crea unha canle, a partir da cal se distribúen as mensaxes aos clientes por subscrición.

Chave mellorasengadido en Redis 6.0:

  • Por defecto, proponse o novo protocolo RESP3, pero a configuración da conexión comeza no modo RESP2 e o cliente cambia ao novo protocolo só se se usa o novo comando HELLO cando se negocia a conexión. RESP3 permítelle devolver directamente tipos de datos complexos sen necesidade de converter matrices xenéricas no lado do cliente e separando os tipos de retorno.
  • Soporte de listas de control de acceso (ACL), o que lle permite determinar con precisión que operacións pode realizar o cliente e cales non. As ACL tamén permiten protexer contra posibles erros durante o desenvolvemento, por exemplo, un manejador que só realiza a operación BRPOPLPUSH pode ser prohibido executar outras operacións, e se a chamada FLUSHALL engadida durante a depuración se esquece accidentalmente no código de produción, isto será non levar a problemas. A implementación dunha ACL non implica ningunha sobrecarga adicional e practicamente non ten impacto no rendemento. Tamén se prepararon módulos de interface para ACL, o que permite crear os seus propios métodos de autenticación. Para ver todas as violacións de ACL rexistradas, ofrécese o comando "ACL LOG". Para xerar claves de sesión impredicibles, engadiuse o comando "ACL GENPASS" mediante HMAC baseado en SHA256.
  • Apoiar SSL / TLS para cifrar a canle de comunicación entre o cliente e o servidor.
  • Apoiar almacenar datos en caché no lado do cliente. Para conciliar a caché do cliente co estado da base de datos dispón de dúas modalidades: 1. Lembrar no servidor as claves que previamente solicitou o cliente para informarlle da perda de relevancia da entrada na caché do cliente. 2. O mecanismo de “difusión”, no que o cliente se subscribe a determinados prefixos de clave e o servidor avisa se cambian as claves que se atopan baixo estes prefixos. A vantaxe do modo "difusión" é que o servidor non desperdicia memoria adicional ao almacenar un mapa de valores almacenados no lado do cliente, pero a desvantaxe é que o número de mensaxes transmitidas aumenta.
  • O intermediario de mensaxes de Disque, que lle permite usar Redis para procesar filas de mensaxes, foi eliminado da estrutura básica en módulo separado.
  • Engadido Proxy de clúster, un proxy para un clúster de servidores Redis, que permite a un cliente organizar o traballo con varios servidores Redis coma se fosen unha única instancia. O proxy pode dirixir solicitudes aos nodos cos datos necesarios, multiplexar conexións, reconfigurar o clúster se se detectan fallos de nodos e executar solicitudes que abranguen varios nodos.
  • Mellorouse significativamente a API para escribir módulos, convertendo esencialmente a Redis nun marco que che permite crear sistemas en forma de módulos complementarios.
  • Implementouse un modo de replicación no que os ficheiros RDB borran inmediatamente despois de ser usados.
  • Mellorouse o protocolo de replicación PSYNC2, o que permitiu realizar a resincronización parcial con máis frecuencia, ao aumentar as posibilidades de identificar os desplazamentos comúns á réplica e ao mestre.
  • Acelerouse a carga de ficheiros RDB. Dependendo do contido do ficheiro, a aceleración oscila entre o 20 e o 30%. A execución do comando INFO acelerouse significativamente cando hai un gran número de clientes conectados.
  • Engadiuse un novo comando STRALGO coa implementación de algoritmos complexos de procesamento de cadeas. Actualmente, só está dispoñible un algoritmo LCS (subsecuencia común máis longa), que pode ser útil cando se comparan secuencias de ARN e ADN.

Fonte: opennet.ru

Engadir un comentario