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
Guia prático: Configurando a fila Dead Letter Queue no Logstash
O Logstash é um pipeline de processamento de dados do lado do servidor de código aberto que ingere dados de várias fontes, transforma-os simultaneamente e os envia para seu “stash”
Piwik: A alternativa open source ao Google Analytics para análise de métricas
Não, o Piwik não é uma fruta derivada do Kiwi, é uma solução de Web Analytics open source, madura e eficiente para análise de métricas sobre audiência em sites e
Gerando Dados Aleatórios com Paralelização no Shell: Guia Prático
Gerar dados aleatórios com paralelização no shell. Falando assim parece até alguma coisa muito importante ou difícil, mas vamos entender sua utilidade na prática. Vez ou outra preciso de uma