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 é 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.