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

Infraestrutura TI

Guia prático: Crie e configure máquinas virtuais com shell script

Entenda como criar diversas máquinas virtuais e configurar seus serviços com shell script. Instalação das dependências Inicialmente é preciso fazer a instalação do VirtualBox, que sera o responsável por criar

Desenvolvimento

Por que escolher Python para projetos de Big Data: vantagens e benefícios

A maioria dos profissionais da área de Big Data possui uma dúvida em comum: qual linguagem de programação certa para um projeto que envolva um grande volume de dados? O

Notícias

Entrevista exclusiva com Nicolas Grekas sobre o Symfony Framework

Em Maio o Nicolas Grekas – um dos desenvolvedores do Symfony Framework – esteve no Brasil pela primeira vez para o SymfonyLive e tivemos a oportunidade de recebê-lo aqui na