DEV Community

Cover image for 🚀Redis 101: Iniciante
Edinei Cavalcanti for edinei.dev

Posted on • Edited on

🚀Redis 101: Iniciante

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?

De Redis Explained
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 De Top 5 Redis Use Cases in Distributed Systems 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

De How to choose the right database for your service
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.

Referências

Top comments (0)