Lançamento do SGBD Redis 6.0

Preparado Liberação do SGBD Redis 6.0, pertencente à classe de sistemas NoSQL. O Redis fornece funções semelhantes ao Memcached para armazenar dados de chave/valor, aprimoradas pelo suporte para formatos de dados estruturados, como listas, hashes e conjuntos, e pela capacidade de executar scripts manipuladores Lua do lado do servidor. Código do projeto fornecido sob licença BSD. Módulos adicionais que oferecem recursos avançados para usuários corporativos, como RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom desde o ano passado fornecido sob a licença proprietária RSAL. O desenvolvimento de versões abertas destes módulos sob a licença AGPLv3 é continuado pelo projeto Boa forma.

Ao contrário do Memcached, o Redis fornece armazenamento persistente de dados em disco e garante a segurança do banco de dados em caso de desligamento de emergência. O código fonte do projeto é distribuído sob a licença BSD. Bibliotecas cliente estão disponíveis para as linguagens mais populares, incluindo Perl, Python, PHP, Java, Ruby e Tcl. Redis suporta transações, que permitem executar um grupo de comandos em uma única etapa, garantindo consistência e consistência (comandos de outras solicitações não podem interferir) na execução de um determinado conjunto de comandos, e em caso de problemas, permitindo reverter mudanças. Todos os dados são totalmente armazenados em cache na RAM.

Comandos como incremento/decremento, lista padrão e operações de conjunto (união, interseção), renomeação de teclas, seleções múltiplas e funções de classificação são fornecidos para gerenciamento de dados. Dois modos de armazenamento são suportados: sincronização periódica de dados em disco e manutenção de um log de alterações em disco. No segundo caso, é garantida a segurança total de todas as alterações. É possível organizar a replicação de dados mestre-escravo para vários servidores, realizada em modo não bloqueador. Também está disponível um modo de mensagens “publicar/assinar”, no qual é criado um canal, cujas mensagens são distribuídas aos clientes por assinatura.

Chave melhoriasadicionado no Redis 6.0:

  • Por padrão, o novo protocolo RESP3 é proposto, mas a configuração da conexão começa no modo RESP2 e o cliente muda para o novo protocolo somente se o novo comando HELLO for utilizado na negociação da conexão. RESP3 permite retornar diretamente tipos de dados complexos sem a necessidade de converter matrizes genéricas no lado do cliente e separando os tipos de retorno.
  • Suporte à lista de controle de acesso (ACL), permitindo determinar com precisão quais operações podem ser executadas pelo cliente e quais não podem. As ACLs também permitem proteger contra possíveis erros durante o desenvolvimento, por exemplo, um manipulador que executa apenas a operação BRPOPLPUSH pode ser proibido de executar outras operações, e se a chamada FLUSHALL adicionada durante a depuração for acidentalmente esquecida no código de produção, isso irá não causar problemas. A implementação de uma ACL não acarreta nenhuma sobrecarga adicional e praticamente não tem impacto no desempenho. Também foram preparados módulos de interface para ACL, possibilitando a criação de seus próprios métodos de autenticação. Para visualizar todas as violações de ACL registradas, o comando “ACL LOG” é fornecido. Para gerar chaves de sessão imprevisíveis, o comando "ACL GENPASS" foi adicionado usando HMAC baseado em SHA256.
  • apoio SSL / TLS para criptografar o canal de comunicação entre o cliente e o servidor.
  • apoio armazenar dados em cache no lado do cliente. Para conciliar o cache do cliente com o estado do banco de dados, dois modos estão disponíveis: 1. Lembrar no servidor as chaves que o cliente solicitou anteriormente para informá-lo sobre a perda de relevância da entrada no cache do cliente. 2. O mecanismo de “broadcasting”, no qual o cliente assina determinados prefixos de chave e o servidor o notifica se as chaves que se enquadram nesses prefixos mudam. A vantagem do modo “broadcasting” é que o servidor não desperdiça memória adicional armazenando um mapa de valores armazenado em cache no lado do cliente, mas a desvantagem é que o número de mensagens transmitidas aumenta.
  • O agente de mensagens Disque, que permite usar o Redis para processar filas de mensagens, foi removido da estrutura básica em módulo separado.
  • Adicionado Proxy de cluster, um proxy para um cluster de servidores Redis, permitindo que um cliente organize o trabalho com vários servidores Redis como se fossem uma única instância. O proxy pode rotear solicitações para nós com os dados necessários, multiplexar conexões, reconfigurar o cluster se falhas de nó forem detectadas e executar solicitações que abrangem vários nós.
  • A API para escrever módulos foi significativamente melhorada, essencialmente transformando o Redis em uma estrutura que permite criar sistemas na forma de módulos complementares.
  • Foi implementado um modo de replicação no qual os arquivos RDB são excluídos imediatamente após serem usados.
  • O protocolo de replicação PSYNC2 foi aprimorado, o que possibilitou realizar ressincronizações parciais com maior frequência, aumentando as chances de identificação de offsets comuns à réplica e ao mestre.
  • O carregamento de arquivos RDB foi acelerado. Dependendo do conteúdo do arquivo, a aceleração varia de 20 a 30%. A execução do comando INFO foi significativamente acelerada quando há um grande número de clientes conectados.
  • Um novo comando STRALGO foi adicionado com a implementação de algoritmos complexos de processamento de strings. Atualmente, apenas um algoritmo LCS (maior subsequência comum) está disponível, o que pode ser útil na comparação de sequências de RNA e DNA.

Fonte: opennet.ru

Adicionar um comentário