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:
About author
Você pode gostar também
Gerenciamento eficiente de discos em Linux com LVM: Guia passo a passo
O gerenciamento de discos em ambientes linux utilizando o LVM fornece uma visão de alto nível à estrutura de discos presentes em um sistema. Isso dá muito mais flexibilidade na
Descubra como criar e instalar plugins no Moodle para otimizar suas tarefas
No universo open source, Moodle pode ser considerado um sinônimo de plataforma de ensino à distância (EAD) e se tratando de um software de código aberto, cedo ou tarde temos
Lançamento do curso Linux Essentials
Uma frase muito conveniente para começar este post é “A 4Linux faz aniversário e quem ganha o presente é você.” Essa frase retrata bem o que queremos dizer, pois além