O que é Redis?
Conheça os recursos e os benefícios do uso do Redis como uma solução de gerenciamento de banco de dados corporativo.
ilustração de semicírculo azul
O que é Redis?

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.

Recursos como diferenciais

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:

Sessões de armazenamento em cache 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.

Filas do Redis

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.

Tipos de dados do Redis

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:

  • Elementos sequência únicos e não ordenados

  • Dados binários seguros

  • HyperLogLogs

  • Matrizes de bits

  • Hashes

  • Listas

Gerenciamento de clientes Redis

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.

Destaques

Alguns dos recursos mais importantes e notáveis do Redis são:

Redis Sentinel

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

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.

Redis Pub/Sub

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.

Persistência do Redis

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.

Redis vs. Memcached

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.

Redis vs. MongoDB

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.

Casos de uso

Aqui estão alguns casos de uso mais comuns que as empresas podem aproveitar ao trabalhar com o Redis:

  • Análise de dados em tempo real: por processar dados com uma latência de sub-milissegundos, o Redis é a melhor opção para análise de dados em tempo real, campanhas de publicidade on-line e processos de machine learning orientados por IA.

  • Aplicativos baseados em localização: o Redis simplifica o desenvolvimento de aplicativos e serviços baseados em localização, pois oferece indexação, conjuntos e operações geoespaciais. Por meio de conjuntos classificados, o Redis é capaz de transferir procuras demoradas e classificação dados de localização, além de usar uma implementação inteligente de geohashing.

  • Cache para banco de dados: o Redis é capaz de gerenciar grandes volumes de dados em tempo real, fazendo uso de seus recursos de armazenamento de dados in-memory para dar suporte a estruturas de banco de dados altamente responsivos. O armazenamento em cache com o Redis permite menos acessos ao banco de dados, o que ajuda a reduzir o volume de tráfego e de instâncias necessárias. Ao usar o Redis para armazenamento em cache, as equipes de desenvolvimento podem melhorar significativamente o rendimento de seus aplicativos, alcançando uma latência de sub-milissegundos. Como a camada de armazenamento em cache do Redis pode ajustar a escala de maneira rápida e econômica, as organizações podem desenvolver aplicativos altamente responsivos e reduzir suas despesas gerais.
Instalação do 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).

Soluções relacionadas
IBM Cloud® Databases for Redis

Obtenha um armazenamento de chave-valor in-memory e de software livre criado para o stack moderno de aplicativos.

Conheça o IBM Cloud® Databases for Redis
Como escolher um banco de dados na IBM Cloud

Descubra como escolher o banco de dados ideal para seu aplicativo nativo da cloud.

O que é banco de dados NoSQL?

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.

O que é MongoDB?

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.

Dê o próximo passo

O IBM Cloud® Databases for Redis é uma solução totalmente gerenciada para implementar os recursos potentes de armazenamento em cache in-memory do Redis em seu stack moderno de aplicativos. Databases for Redis é uma solução específica para empresas que permite ajustar a escala do disco e do RAM separadamente, proporcionando a flexibilidade necessária para atender às demandas crescentes de recursos dos requisitos de aplicativos mais inovadores.

Saiba mais sobre o IBM Cloud® Databases for Redis