A comunidade Valkey anunciou o lançamento Valkey 9.1 — de uma nova versão estável de um armazenamento de dados de tipo ‘chave-valor’ de alto desempenho com código aberto (licença BSD), que suporta diversos cenários de uso, como cache e filas de mensagens, além de poder atuar como um banco de dados principal. O projeto é apoiado pela Linux Foundation, o que garante sua contínua disponibilidade como código aberto.
O projeto é um fork do Redis e foi criado após mudanças em sua licenciamento.
Esta versão inclui novos recursos, melhorias em segurança, monitoramento, desempenho e eficiência das ferramentas. Mais de 80 pessoas participaram da preparação do lançamento.
Principais mudanças
Lua foi separado em um módulo independente.
No Valkey 9.1, o motor de scripts Lua foi separado do servidor principal e transferido para um módulo independente. Essa separação reduz a superfície de ataque do núcleo do Valkey e permite que os administradores desativem completamente o Lua, caso os scripts não estejam sendo usados. Para facilitar a compreensão dos motores de scripts carregados no sistema, o comando INFO recebeu uma nova seção na resposta — Scripting Engines.Novas correções de segurança.
A versão estável 9.1.0 inclui correções para três vulnerabilidades: uso após liberação no mecanismo de desbloqueio do cliente, acesso incorreto à memória no comando 7RESTORE, bem como uso após liberação durante a sincronização completa ao executar código Lua/function com cedência de execução. Elas são referidas nas notas como CVE-2026-23479, CVE-2026-25243 e CVE-2026-23631.ACL a nível de banco de dados.
Foi adicionada uma sistema de controle de acesso a nível de bancos de dados individuais. Isso permite uma prévia mais fina dos direitos em configurações multiusuário e não se restringe apenas às regras de acesso globais a nível de toda a instância do Valkey.Recarregamento automático de certificados TLS.
O Valkey 9.1 recebeu suporte para recarregamento automático de certificados TLS. Para administradores, isso significa menos operações manuais na rotação de certificados e uma operação mais conveniente de implantações seguras.Novo comando HGETDEL.
O comando obtém e remove de forma atômica um ou mais campos de uma estrutura hash. O significado prático — scripts semelhantes a filas ou consumo único de dados, onde anteriormente era necessário combinar HGET e HDEL por meio de uma transação.Nova equipe MSETEX.
O MSETEX permite definir múltiplas chaves com um único tempo de vida. Anteriormente, esse cenário exigia múltiplas chamadas SETEX ou uma combinação de SET e EXPIRE através de um pipeline. A nova equipe reduz o número de chamadas e simplifica o código típico para dados de sessão e temporários.Nova equipe CLUSTERSCAN.
Nos clusters, há uma única equipe para escanear chaves em todos os nós. Antes, os clientes precisavam executar SCAN em cada nó e combinar os resultados. O CLUSTERSCAN simplifica bibliotecas de cliente, ferramentas administrativas e tarefas operacionais, como a busca de chaves por padrão ou tipo em todo o cluster.Otimização do consumo de memória por strings.
Graças a otimizações internas de ponteiros para strings menores que 128 bytes, foi relatada uma redução no consumo de memória de até 20%. Isso é especialmente importante para cargas típicas de cache, onde um grande número de pequenos valores é armazenado.Menos memória para conjuntos ordenados.
Otimizações nas estruturas de skiplist reduzem o uso de memória para conjuntos ordenados em até 10%. Além disso, as operações em conjuntos ordenados foram aceleradas, incluindo consultas como ZRANGEBYSCORE e ZRANGEBYLEX.Trabalho acelerado com rehashing.
A redistribuição interna das tabelas hash, que geralmente ocorre com o crescimento do keyspace, foi otimizada para reduzir a latência. As notas de lançamento também mencionam a diminuição de picos de latência devido à liberação de páginas incremental.Modelo de I/O threading aprimorado.
Na versão candidato 9.1.0-rc2, foi reformulado o modelo de interação dos threads de entrada e saída usando filas sem bloqueio. Nas notas, foi mencionado um aumento na capacidade de 8-17%.Aceleração de GET e SET.
O Valkey agora usa por padrão relógios de hardware onde possível, reduzindo a sobrecarga de chamadas de sistema relacionadas ao tempo. O projeto relata um aumento de desempenho de GET e SET de até 3% no geral.Exclusões em massa mais rápidas.
Durante operações como SREM, ZREM e HDEL, o Valkey agora suspende temporariamente a mudança do tamanho das tabelas hash para evitar rehashing desnecessário e acelerar a exclusão em massa de elementos.Criação de réplicas mais eficiente com AOF.
Ao criar uma réplica com AOF ativado, agora é reutilizado o arquivo RDB gerado em vez de gerar uma nova captura para o arquivo base AOF. Isso deve reduzir a carga desnecessária ao implantar réplicas.Melhorias no valkey-cli e valkey-benchmark.
O valkey-cli agora suporta a migração de slot atômico através do parâmetro —cluster-use-atomic-slot-migration para as operações —cluster rebalance e —cluster reshard. O valkey-benchmark agora inclui a saída da distribuição de RPS, bem como os parâmetros —warmup e —duration, tornando os testes de desempenho mais gerenciáveis.
Separadamente, junto com o Valkey 9.1 na ecosfera são promovidos projetos associados: Valkey Admin para gerenciamento visual de clusters, Valkey Search 1.2 com busca de texto completo, filtros numéricos, tags e busca vetorial, bem como a biblioteca cliente Valkey GLIDE.
Valkey 9.1 é uma atualização significativa em termos de operação: menos memória em estruturas típicas, menos latência durante reestruturações internas, novos comandos para clusters e dados temporais, assim como um modelo de segurança mais rigoroso para instalações em produção.
Fonte: linux.org.ru
