Descubra o Redis: a solução open source para armazenamento de dados

Descubra o Redis: a solução open source para armazenamento de dados

Administradores de sistemas e desenvolvedores provavelmente em algum momento já precisaram de alguma solução para armazenar dados temporários – como token de sessão – que sejam acessíveis de um ponto comum entre todas as aplicações e/ou serviços, como o Memcached, mas você já conhece o Redis?

O Redis é um é um software open source de armazenamento de dados chave-valor em memória, atualmente é o mais popular no mundo – segundo o db engine (https://db-engines.com/en/ranking/key-value+store), muito utilizado pelo seu cache e gerenciamento de sessões. Ele é considerado a melhor opção devido ao seu alto desempenho por conta do armazenamento dos dados serem em memória ao invés do tradicional em discos, com isso evita atrasos no tempo de busca e consumo de instruções de CPU.

Características

Redis é escrito em ANSI C e é compatível com a maioria dos sistemas POSIX – Linux, BSD e OS X -, porém sua implantação é recomendada em Linux. Até o momento não há suporte oficial para Windows. Podemos dizer também que ele permite que os usuários façam usos de chaves que facilitam o mapeamento para vários tipos de dados. Possui compatibilidade de diversas linguagens de desenvolvimento, além de possuir compatibilidade com snapshots, armazenando cada alteração de dados em disco conforme a gravação.

Possui também replicação nativa (master-slave), sendo a réplica uma cópia fiel do principal e reconectando-se automaticamente caso algum problema de comunicação ocorra. Quando restabelecida a conexão, automaticamente é tentado uma ressincronização parcial para que ambos fiquem idênticos, caso não seja possível é realizado um snapshot e enviado para a réplica, após isso atualizado com as instruções mais recentes. Por padrão essa replicação é assíncrona.

Redis Sentinel é uma ferramenta que provê alta disponibilidade para o Redis sem intervenção humana para certos tipos de falhas. O Sentinel ainda pode ser utilizado para realizar o monitoramento de todas as instâncias Redis (master e réplicas), notificações de eventuais problemas com as instâncias podem ser enviadas para os administradores de sistemas ou outros softwares através de API, podendo também realizar o failover automático promovendo uma réplica à master e atualizando todas as outras réplicas a procurarem o novo master, além de ser uma autoridade para descoberta de serviço provendo para os clients a configuração do cluster com o endereço do master.

O Redis ainda possui a persistência de dados, tendo como opções:

  • RDB: que irá realizar snapshots do estado atual em um intervalo especificado;
  • AOF: que irá armazenar logs de cada operação de escrita, realizando uma verificação do estado dos dados sempre que o servidor for iniciado.

É possível utilizar os dois métodos simultaneamente para garantir a integridade dos dados.

O Redis pode ser facilmente implantando com a utilização de containers, pois já há imagens muito estáveis no DockerHub que agilizam a disponibilização da solução.

Alguns Casos de uso

  • Armazenamento em cache: Quando utilizado recebendo as requisições primeiro que outros bancos de dados, é criado um cache em memória de alto desempenho diminuindo a latência na busca de dados estáticos e a carga nos bancos de dados que ficaram atrás dele, gerando maior performance para respostas de outras requisições.
  • Gerenciamento de sessões: Ele é altamente recomendado para controle de sessões que necessitam de persistência, como jogos, e-commerce e mídias sociais, utilizando ele como armazenamento de chave-valor com o tempo de vida correto nas chaves de sessão.
  • Lista: É uma das estruturas de dados que facilita implementar uma fila leve e persistente. As listas oferecem operações atômicas, além de recursos de bloqueio, tornando-as adequadas para várias aplicações que exigem um agente de mensagens confiável ou uma lista circular.

Quem usa o Redis?

Grandes empresas como Twitter, GitHub, Snapchat e StackOverflow utilizam esta tecnologia, o que nos passa maior credibilidade ainda sobre o potencial desta ferramenta.

 

Esta foi apenas uma introdução à ferramenta, e nos próximos posts veremos mais detalhes de cada função, como realizar a implementação, configuração e melhores práticas.

Até mais!

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Conhecendo o Kernel Linux pelo /proc (Parte 2) - Memória
Próxima Presidente da Microsoft reconhece erro histórico sobre open source

About author

Ricardo Caeiro
Ricardo Caeiro 6 posts

Ricardo Caeiro é formado em Redes de Computadores pela BandTec, MBA DevOps Engineering pela FIAP, possui mais de 10 anos de experiência na área da tecnologia da informação, já atuou em diversas frentes da área e hoje realiza consultoria e treinamento de tecnologias de software livre com ênfase em middleware e cultura DevOps.

View all posts by this author →

Você pode gostar também

Segurança

Primeiros passos com o Vault da HashiCorp

O Vault é uma ferramenta de código aberto desenvolvida pela HashiCorp e projetada para ajudar na gestão de segredos e proteção de informações sensíveis em ambientes de computação modernos.  Ele

Big Data

Desvendando o Machine Learning: entenda o que é e como funciona

Afinal, o que é Machine Learning ? Atualmente, muito se discute sobre o aprendizado de máquina, Deep Learning e Inteligência Artificial, acredita-se que esses três termos são sinônimos, mas na

Cloud

Como modificar recursos existentes com Terraform na Google Cloud

Vimos no post anterior uma introdução ao Terraform e como criar de forma prática e simples uma máquina virtual na cloud da Google – GCP, porém não vimos como realizar