Redka, uma alternativa escalável ao Redis com integração SQLite

Conheça o Redka, uma alternativa escalável ao Redis com integração SQLite. Confira os detalhes dessa importante opção.

A decisão do Redis, provavelmente o armazenamento de dados de chave/valor NoSQL em memória mais usado atualmente, de alterar sua política de licenciamento, o que efetivamente o tirou do ecossistema de código aberto, desencadeou uma série de eventos.

Vamos lembrá-los em ordem cronológica.

Primeiro, a Microsoft anunciou seu novo projeto de código aberto, Garnet. Então, surgiu um segundo fork do Redis, o Redict.

Poucos dias depois, um terceiro projeto, Valkey, uma alternativa de código aberto ao Redis voltada para a comunidade e apoiada por alguns dos maiores nomes da tecnologia, anunciou seu lançamento.

E, agora, é a vez do Redka.

Redka, uma alternativa escalável ao Redis com integração SQLite

Redka, uma alternativa escalável ao Redis com integração SQLite
Redka, uma alternativa escalável ao Redis com integração SQLite

Redka é um servidor em andamento que combina Redis e SQLite. Ele suporta dados além da RAM, garantindo desempenho e flexibilidade robustos.

No entanto, o que é mais intrigante sobre a nova iniciativa é que ela não 锓outro concorrente do Redis”, mas sim um pouco diferente. Então, do que se trata?

Redka pretende combinar a alta velocidade do Redis com os recursos duráveis de armazenamento e transação do SQLite de uma forma que seja compatível com uma API Redis.

Uma das principais limitações do Redis é que os dados devem caber na RAM. Com o Redka, seus dados não precisam necessariamente ficar presos em um espaço de memória para conjuntos de dados maiores, sem estarem sujeitos à mesma restrição de hardware.

Redka também é transacional ACID, oferecendo suporte total ao processamento confiável de operações de banco de dados com reversões automáticas em caso de falhas. Os principais recursos que Redka possui incluem:

  • Flexibilidade de armazenamento de dados : Ao contrário do Redis, que armazena principalmente dados em RAM para um resultado rápido durante o acesso, Redka gerencia a persistência de dados em um banco de dados SQLite. Isso significa que se houver uma reinicialização do sistema, seus dados permanecerão sãos e salvos no disco.
  • Operações avançadas de dados : Redka apresenta visualizações SQL, que aprimoram a introspecção e a geração de relatórios de dados – um recurso útil para empresas que precisam de análise detalhada de dados.
  • Opções de servidor duplo : os usuários podem implantar o Redka como um servidor independente ou integrá-lo diretamente em seus aplicativos Go, oferecendo flexibilidade dependendo das necessidades do projeto.

Recursos compatíveis com Redis do Redka
Redka faz Redix, seguindo-o em seu suporte para os principais tipos de dados de strings, listas, conjuntos, hashes e conjuntos classificados, bem como muitos comandos para lidar com esses tipos. Aqui estão alguns exemplos de comandos e recursos que você pode esperar dele.

  • Strings : operações como GET, SET e INCR estão disponíveis para lidar com a manipulação básica de dados.
  • Listas e Conjuntos : Comandos para gerenciar coleções ordenadas e não ordenadas, como LPOP para listas e SADD para conjuntos.
  • Hashes : você pode manipular pares campo-valor usando comandos como HSET e HGET.
  • Conjuntos classificados : ZADD e ZRANK estão prontos para uso para dados ordenados com pontuações.
  • Gerenciamento de chaves : o ciclo de vida das chaves é gerenciável com comandos como DEL e EXPIRE.

Instalação e desempenho
Comecemos pelo princípio em relação ao Redka: seu uso é muito óbvio.

Ele está disponível como um binário de arquivo único, que pode ser baixado e executado em sistemas Linux e MacOS, ou extraído como uma imagem Docker para implantar facilmente em um contêiner.

Além disso, Redka está disponível para desenvolvedores como um módulo Go em aplicativos.

No que diz respeito ao desempenho, o Redka pode não ser capaz de competir com o Redis em termos de velocidade bruta porque depende do SQLite.

No entanto, de acordo com os desenvolvedores, os benchmarks preliminares parecem indicar que ele é realmente capaz de escrever e ler dezenas de milhares de vezes por segundo.

Para mais informações, visite o repositório GitHub do projeto.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.