Por: @isadora_santos_gomes
Revisão: @neiesc
Índice
Oque é?
Como funciona?
Características
Comparação com Outros Bancos de Dados
Melhores Práticas e Considerações
Outros Recursos
Referências
Oque é?
Redis (Remote Dictionary Server) é um banco de dados NoSQL de chave-valor em memória sendo de código aberto e por isso, gratuito. É um dos principais para cache distribuído no mercado. Escrito em C e pelo autor original Salvatore Sanfilippo.
Lançado em 2009, suporta inúmeras formas de dados como strings, listas, conjuntos, etc.
Como funciona?
Quando um aplicativo depende de fontes de dados externas, o rendimento e a execução dessas fontes podem criar um atraso no desempenho, principalmente quando aumentamos o trânsito de informações entre o aplicativo e a fonte de dados. O Redis foi desenvolvido justamente para suprir essa necessidade de que os dados fossem armazenados em memória e de baixa latência, entregando um excelente desempenho, na hora de ler dados.
Características
Elencarei a baixo características muito importantes da ferramenta em questão.
- Alto desempenho É um Software que consegue sem problemas armazenar e oferecer informações armazenadas anteriormente em tempo real, sendo essa a característica que influencia cada vez mais pessoas a utilizá-lo.
- Armazenamento em memória O Redis armazena seus dados diretamente na memória RAM, o que permite acesso extremamente rápido. Este tipo de abordagem elimina o processo associado ao acesso de um IO (Disco rígido ou SSD), tornando por si só a gravação e leitura de dados bem mais veloz e eficiente.
- Tipos de dados A ferramenta é capaz de suportar diversos tipos de dados como: Strings – Tipo básico de dados. Listas - Sequências ordenadas de Strings. Conjuntos - Coleções não ordenadas de Strings. Hash – Estruturas que armazenam pares de chave-valor sem necessidade de determinar o tipo. Conjuntos Ordenados – Conjuntos com pontuação que permitem ordenação.
- Facilidade no uso e integração Possuindo uma interface simples, o mesmo é compatível com linguagens como o Python, Java, Node.js, C++, C# entre outras. Sendo assim ele se torna extremamente acessível para programadores que trabalhem com uma ou mais linguagens.
- Monitoramento e Ferramentas de Administração O mesmo oferece ferramentas e comandos para monitorar o desempenho do banco de dados, obter estatísticas e gerenciá-lo. Isso permite, entre outras coisas, que um administrador identifique e resolva problemas rapidamente, otimizando a operação do sistema.
- Limitação e Memória O armazenamento seria um problema, pois o mesmo seria limitado a quantidade de RAM do seu servidor, porém, para contornar este dilema os desenvolvedores criaram uma configuração que permite com que você configure políticas de expulsão, que determina instruções para quando o mesmo atingir o limite de memória. Por exemplo, ele pode remover chaves não utilizadas recentemente – LRU (Least Recently Used) - ou então pode chaves que não são utilizadas com frequência - LFU (Least Frequently Used).
Comparação com Outros Bancos de Dados
O Redis é um banco de dados NoSQL em memória, ou seja, ele utiliza a memória principal do computador para armazenar informações ao invés de seu disco rígido.
- Pontos Positivos 👍🏼
- Velocidade
- Flexibilidade
- Escalabilidade
- Comunidade Ativa
- Pontos Negativos 👎🏼
- Consumo de Memória
- Persistência de dados
Melhores Práticas e Considerações
Escolher uma estrutura de dados é fundamental para utilizar Redis e para isso é necessário definir qual a sua necessidade.
Definir o limite de memória que o mesmo poderá utilizar é importante para que a memória disponível no servidor não seja consumida completamente, logo uma ótima prática a ser implementada, juntamente a definir qual a política e expulsão a ser utilizada e qual o método de persistência que melhor atenderá a suas necessidades.
Seguindo com boas práticas também é importante citar:
- Redis sempre atualizados.
- Realizar testes de carga e stress.
- Evitar dados extensos.
- Monitoramento Contínuo.
- Realização frequentes de Backups.
- Usar TTL (time to live)
Outros Recursos
O Redis, oferece uma ampla gama de recursos que o tornam uma escolha versátil para diversas aplicações. Abaixo, destacamos algumas de sus principais funcionalidades.
- Persistência de dados Referente a persistência de dados, função que garante que informações inseridas anteriormente podem ser recuperadas de forma consistente, o Software em questão desenvolve este trabalho com êxito, pois ele armazena dados em disco e dá para o usuário diversas formas de fazê-lo: Como exemplo: RDB (Redis DataBase ou Base de dados Redis) - Salva o estado do banco de dados em intervalos de tempo, criando uma cópia dos dados que estão na memória. AOF (Append Only File) - Registra todas as operações de gravação recebidas pelo servidor. RDB + AOF - Opção em que você pode combinar ambas ferramentas citadas acima na mesma instância.
- Modelo Pub/Sub O Redis implementou o protocolo no intuito de agilizar o sistema de mensagens em tempo real, onde editores publicam questionamentos ou ideias em um canal, ou tópico e vários clientes podem se inscrever e interagir neste mesmo canal.
Top comments (0)