O que é o Redis?

10 de maio de 2024

8 minutos

O que é o Redis?

Redis (REmote DIctionary Server) é um armazenamento de chave/valor NoSQL de código aberto, em memória, utilizado principalmente como cache de aplicação ou banco de dados de resposta rápida.

O Redis armazena dados na memória, em vez de em disco ou em unidade de estado sólido (SSD), o que proporciona velocidade, confiabilidade e desempenho incomparáveis.

Quando uma aplicação depende de fontes externas de dados, a latência e o throughput dessas fontes podem criar um gargalo de desempenho, especialmente com o aumento do tráfego ou à medida que a aplicação escala. Uma forma de melhorar o desempenho nesses casos é armazenar e manipular dados em memória, fisicamente mais próximo da aplicação. O Redis foi criado para essa tarefa: armazena todos os dados em memória — oferecendo o máximo desempenho possível na leitura e gravação — e oferece recursos de replicação integrados que permitem posicionar os dados fisicamente mais próximos do usuário para a menor latência.

Outras características do Redis dignas de nota incluem compatibilidade com várias estruturas de dados, scripts Lua integrados, vários níveis de persistência em disco e alta disponibilidade.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionados por especialistas e notícias sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

Recursos diferenciadores

O Redis se diferencia dos armazenamentos NoSQL “tradicionais” como um componente auxiliar projetado especificamente para melhorar o desempenho de aplicações. Aqui estão alguns recursos diferenciadores do Redis:

Sessões de cache do Redis

Novamente, ao contrário de bancos NoSQL como MongoDB e PostgreSQL, o Redis armazena dados na memória principal do servidor, em vez de em discos rígidos ou unidades de estado sólido. Isso leva a tempos de resposta significativamente mais rápidos ao executar operações de leitura e gravação. Isso também ajuda a garantir alta disponibilidade (juntamente com o Redis Sentinel) e escalabilidade de serviços e cargas de trabalho de aplicações.

Filas do Redis

O Redis pode enfileirar tarefas que podem levar mais tempo para serem processadas pelos clientes da web do que o normal. O enfileiramento de tarefas multiprocesso é comum em muitas das aplicações baseadas na web atuais, e o Redis facilita a implementação de processos automatizados escritos em Python que são executados em segundo plano em 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 vários tipos e estruturas de dados, incluindo:

  • Elementos de string exclusivos e não classificados

  • Dados seguros para binários

  • HyperLogLogs

  • Matrizes de bits

  • Hashes

  • Listas

Manuseio de clientes do Redis

O Redis conta com recursos nativos de integração de clientes para ajudar os desenvolvedores a manipular e interagir com seus dados. Atualmente, há mais de 100 clientes de código aberto diferentes disponíveis na biblioteca de clientes do Redis, e os desenvolvedores podem facilmente adicionar novas integrações para compatibilidade com funcionalidades e linguagens de programação adicionais.

Mixture of Experts | 25 de abril, episódio 52

Decodificando a IA: resumo semanal das notícias

Junte-se ao nosso painel de engenheiros, pesquisadores, líderes de produto e outros especialistas de classe mundial enquanto eles cortam o ruído da IA para trazer a você as últimas notícias e insights sobre IA.

Funcionalidades

Algumas das funcionalidades mais importantes ou dignas de nota do Redis incluem:

Redis Sentinel

Redis Sentinel é um sistema distribuído independente que ajuda desenvolvedores a calibrar suas instâncias para serem altamente disponíveis aos clientes. O Sentinel utiliza processos de monitoramento, notificações e failovers automáticos para informar usuários sobre problemas em instâncias master e slave, ao mesmo tempo em que reconfigura novas conexões para aplicações quando necessário.

Redis Cluster

Redis Cluster é uma implementação distribuída do Redis que divide automaticamente os conjuntos de dados entre vários nós. Isso permite maior desempenho e escalabilidade das implementações de bancos de dados, ao mesmo tempo em que garante operações contínuas caso os subconjuntos de nós não consigam se comunicar com o restante do cluster.

Redis Pub/Sub

Como o Redis oferece suporte ao uso de comandos de publicação and inscrição (Pub/Sub), os usuários podem projetar serviços de chat e mensagens de alto desempenho em todas as suas aplicações e serviços. Isso inclui a capacidade de usar estruturas de dados de lista para executar operações atômicas e recursos de bloqueio.

Persistência do Redis

O Redis usa armazenamento em disco persistente projetado para sobreviver a interrupções de processos e gargalos de rede. O Redis pode persistir conjuntos de dados tirando instantâneos regulares dos dados e anexando-os às alterações à medida que elas se tornam disponíveis. O Redis pode, então, ser configurado para gerar esses backups de bancos de dados sob demanda ou em intervalos automáticos para garantir a durabilidade e a integridade dos bancos de dados.

Redis vs. Memcached

Tanto o Redis quanto o Memcached são armazenamentos de dados in-memory de código aberto, mas diferem no que diz respeito aos benefícios e funcionalidades. O Memcached costuma ser a escolha preferida para aplicações simples que exigem menos recursos de memória, mas é limitado ao armazenar dados em sua forma serializada. O uso de estruturas de dados pelo Redis fornece muito mais poder ao trabalhar com grandes conjuntos de dados e mais capacidade de ajustar o conteúdo do cache e manter maior eficiência em cenários de aplicações específicas.

Redis vs. MongoDB

Enquanto o Redis é um armazenamento de banco de dados em memória, o MongoDB é conhecido como um armazenamento de documentos em disco. Embora ambas as soluções sejam criadas para propósitos diferentes, elas são frequentemente usadas em conjunto para maximizar a velocidade e a eficiência de um banco de dados NoSQL. Graças à sua capacidade de cache, o Redis consegue localizar dados necessários de forma extremamente rápida, servindo como um buffer de ingestão que torna o MongoDB mais eficiente e capaz de gerenciar frequências maiores de atualizações de documentos em quase tempo real. Com a habilidade do MongoDB de armazenar grandes volumes de dados e a capacidade do Redis de processá-los mais rapidamente, a combinação oferece uma solução poderosa de gerenciamento de banco de dados para diversos casos de uso.

Casos de uso

Aqui estão alguns casos de uso comuns dos quais as empresas se beneficiam ao trabalhar com o Redis:

  • Análise em tempo real: como o Redis pode processar dados com latência inferior a um milissegundo, ele é ideal para análises em tempo real, campanhas de publicidade on-line e processos orientados por inteligência artificial (IA) ou aprendizado de máquina.

  • Aplicações baseadas em localização: o Redis simplifica o desenvolvimento de aplicações e serviços baseados em localização, fornecendo indexação, conjuntos e operações geoespaciais. Usando conjuntos classificados, o Redis é capaz de descarregar a pesquisa demorada e a classificação de dados de localização, além de usar uma implementação inteligente de geo-hashing.

  • Armazenamento em cache para bancos de dados: o Redis é capaz de lidar com grandes quantidades de dados em tempo real, fazendo uso de seus recursos de armazenamento de dados in-memory para ajudar na compatibilidade com construções de banco de dados altamente responsivas. 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 as instâncias necessárias. Ao usar o Redis para armazenamento em cache, as equipes de desenvolvimento podem melhorar drasticamente a taxa de transferência de suas aplicações, obtendo latência inferior a um milissegundo. E como a camada de armazenamento em cache do Redis pode ser dimensionada de forma rápida e econômica, as organizações podem desenvolver essas aplicações altamente responsivas e, ao mesmo tempo, reduzir seus gastos gerais.

Instalação do Redis

Começar com o Redis é um processo relativamente fácil, especialmente com o uso do Redis Desktop Manager (RDM). E, como Redis e RDM são de código aberto, comunidades de desenvolvimento ativas estão sempre trabalhando para melhorar sua eficiência de operação e evoluir continuamente as ferramentas e integrações suportadas.

Para mais informações sobre instalação e configuração do Redis, siga as instruções de configuração na comunidade.

Soluções relacionadas
Software e soluções de bancos de dados

Use soluções de bancos de dados da IBM para atender a diversas necessidades de cargas de trabalho em toda a nuvem híbrida.

Explore as soluções de banco de dados
Banco de dados nativo da nuvem com o IBM Db2

Explore o IBM Db2, um banco de dados relacional que oferece alto desempenho, escalabilidade e confiabilidade para armazenar e gerenciar dados estruturados. Está disponível como SaaS no IBM Cloud ou para auto-hospedagem.

Descubra o Db2
Serviços de consultoria de dados e análise de dados

Libere o valor dos dados empresariais com a IBM® Consulting, construindo uma organização orientada por insights, que proporciona vantagem comercial.

Conheça os serviços de análise de dados
Dê o próximo passo

Use soluções de bancos de dados da IBM para atender a diversas necessidades de cargas de trabalho em toda a nuvem híbrida.

Explore as soluções de banco de dados Descubra o IBM Db2