Redis (para REmote DIctionary Server) (link externo à IBM) é um software livre, in-memory e um armazenamento de valor-chave NoSQL que é usado principalmente como um cache de aplicativos ou um banco de dados de resposta rápida. Por armazenar os dados na memória e não em um disco ou unidade de estado sólido (SSD), o Redis oferece velocidade, confiabilidade e desempenho incomparáveis.
Quando um aplicativo depende de fontes de dados externas, a latência e o rendimento dessas fontes podem criar um gargalo de desempenho, especialmente à medida que o tráfego aumenta ou que os aplicativos ajustam a escala. Uma forma de melhorar o desempenho nesses casos é armazenar e manipular os dados in-memory, fisicamente mais próximos do aplicativo. O Redis foi desenvolvido para esta tarefa: ele armazena todos os dados na memória, entregando o desempenho mais rápido possível durante a leitura ou gravação dos dados, e oferece recursos integrados de replicação que permitem posicionar os dados fisicamente mais próximos do usuário para alcançar a menor latência possível.
Outras características importantes do Redis são o suporte para diversas estruturas de dados, o script integrado Lua, diversos níveis de persistência em disco e alta disponibilidade.
O Redis se destaca dos armazenamentos de dados NoSQL 'tradicionais' como um componente auxiliar projetado especificamente para melhorar o desempenho de aplicativos. Aqui estão alguns recursos considerados diferenciais do Redis:
Mais uma vez, diferente dos bancos de dados NoSQL como o MongoDB e o PostreSQLName, o Redis armazena dados na memória principal do servidor em vez de usar discos rígidos e unidades de estado sólido. Isso resulta em tempos de resposta significativamente mais rápidos ao realizar operações de leitura e gravação. Ele também ajuda a assegurar alta disponibilidade (junto ao Redis Sentinel, veja abaixo) e a escalabilidade de serviços e cargas de trabalho de aplicativos.
O Redis pode criar filas de tarefas que podem levar mais tempo que o normal para serem processadas por seus clientes. O enfileiramento de tarefas de multiprocesso é o recurso mais comum para os aplicativos da web de hoje e o Redis facilita a implementação de processos automatizados gravados com Python que são executados em segundo plano de ciclos de solicitação/resposta.
Embora tecnicamente seja um armazenamento de chave-valor, o Redis é um servidor de estrutura de dados real compatível com diversos tipos de dados e estruturas, incluindo:
O Redis apresenta recursos de integração nativa de clientes para ajudar os desenvolvedores a gerenciar e interagir com seus dados. Atualmente existem mais de 100 clientes diferentes de software livre disponíveis na biblioteca de cliente do Redis e os desenvolvedores podem facilmente incluir novas integrações para dar suporte a recursos adicionais e a linguagens de programação.
Alguns dos recursos mais importantes e notáveis do Redis são:
Redis Sentinel (link externo à IBM) é um sistema independente distribuído que ajuda os desenvolvedores a calibrar suas instâncias para oferecer alta disponibilidade para os clientes. O Sentinel usa diversos processos de monitoramento, notificações e failovers automáticos para informar aos usuários quando houver algum problema com as instâncias de mestre e escravo, além de reconfigurar automaticamente novas conexões de aplicativos quando necessário.
Redis Cluster (link externo à IBM) é uma implementação distribuída do Redis que divide automaticamente conjuntos de dados entre diversos nós. Isso permite alcançar um desempenho e uma escalabilidade melhor das implementações do banco de dados, além de assegurar operações contínuas caso os subconjuntos de nós não consigam se comunicar com o resto do cluster.
Como o Redis suporta o uso dos comandos de publicação e assinatura (Pub/Sub) (link externo à IBM), os usuários podem criar serviços de chat e de mensagens de alto desempenho em todos os aplicativos e serviços. Isso inclui o uso de dados da lista de estruturas para executar operações atômicas e para recursos de bloqueio.
O Redis usa armazenamento persistente em disco (link externo à IBM) projetado para suportar indisponibilidade do processo e gargalos da rede. O Redis pode manter conjuntos de dados fazendo capturas instantâneas de dados regularmente e anexando-as com alterações à medida que se tornam disponíveis. O Redis pode então ser configurado para gerar esses backups banco de dados sob demanda ou em intervalos automáticos para assegurar a durabilidade e a integridade do banco de dados.
Tanto o Redis quanto o Memcached são software livre, armazenamentos de dados in-memory, mas diferem no que diz respeito a seus benefícios e recursos. O Memcached costuma ser a opção preferencial para aplicativos simples que requerem poucos recursos de memória, mas é limitado ao armazenar dados em seu formulário serializado. O uso de estruturas de dados pelo Redis fornece muito mais capacidade ao trabalhar com grandes conjuntos de dados e possibilidade de ajustar o conteúdo do cache e manter uma eficiência maior em situações específicas do aplicativo.
O Redis seja um armazenamento de banco de dados in-memory e o MongoDB é conhecido por ser um armazenamento de documentos em disco. Ambas as soluções foram criadas para propósitos diferentes, porém, muitas vezes elas são usadas juntas para maximizar a velocidade e a eficiência de um banco de dados NoSQL. Por ter alta capacidade de armazenamento em cache, o Redis pode localizar os dados solicitados extremamente rápido, servindo como um buffer de ingestão que permite o MongoDB ser mais eficiente e gerenciar uma carga maior de atualizações de documentos em tempo quase real. Com a capacidade do MongoDB de armazenar volumes significativos de dados e a capacidade do Redis de processá-los rapidamente, o pareamento oferece uma potente solução de gerenciamento de banco de dados para diversos casos de uso.
Aqui estão alguns casos de uso mais comuns que as empresas podem aproveitar ao trabalhar com o Redis:
Começar a usar o Redis é um processo simples, especialmente com o use do Redis Desktop Manager (RDM) (link externo à IBM). E como Redis e o RDM são softwares livres, as comunidades de desenvolvimento ativas estão sempre trabalhando para aprimorar a eficiência de seu funcionamento e para melhorar as ferramentas e integrações compatíveis.
Para obter mais informações sobre instalação e configuração do Redis, siga as instruções de instalação na comunidade (link externo à IBM).
Obtenha um armazenamento de chave-valor in-memory e de software livre criado para o stack moderno de aplicativos.
Descubra como escolher o banco de dados ideal para seu aplicativo nativo da cloud.
Tudo o que é necessário saber sobre o NoSQL, um tipo de projeto de banco de dados que oferece mais flexibilidade do que os bancos de dados tradicionais.
Este guia descobre os recursos e benefícios de usar o MongoDB como parte de sua solução de gerenciamento de banco de dados corporativo.