Início

topics

Redis?

O que é o Redis?
Explore a solução Redis da IBM Inscreva-se para receber atualizações sobre IA
Ilustração com colagem de pictogramas de nuvens, gráfico de pizza, pictogramas de gráficos
O que é Redis?

O Redis (REmote DIctionary Server) é um armazenamento de estrutura de dados de chave/valor NoSQL de código aberto, in-memory, usado principalmente como cache de aplicações ou banco de dados de resposta rápida.

O Redis (link externo a ibm.com) armazena dados in-memory, em vez de em disco ou unidade de estado sólido (SSD), o que ajuda a proporcionar velocidade, confiabilidade e desempenho incomparáveis.

Quando uma aplicação depende de fontes de dados externas, a latência e a taxa de transferência dessas fontes podem criar um gargalo de desempenho, especialmente à medida que o tráfego aumenta ou a aplicação é escalonada.

Uma maneira de melhorar o desempenho nesses casos é armazenar e manipular dados in-memory, fisicamente mais próximos da aplicação. O Redis foi desenvolvido para essa tarefa: ele armazena todos os dados in-memory, oferecendo o desempenho mais rápido possível ao ler ou gravar dados, e oferece recursos de replicação integrados que permitem colocar os dados fisicamente mais próximos do usuário para obter 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.

Como escolher os modelos de base de IA corretos

Use esta estrutura de seleção de framework para escolher o modelo mais apropriado e, ao mesmo tempo, equilibrar seus requisitos de desempenho com custo, riscos e necessidades de implementação.

Conteúdo relacionado Inscreva-se para receber o e-book sobre o Presto
Recursos diferenciadores

O Redis destaca-se dos armazenamentos de dados NoSQL "tradicionais" como um componente auxiliar projetado especificamente para melhorar o desempenho das aplicações. Aqui estão alguns recursos diferenciadores do Redis:

 

Sessões de cache do Redis (Redis cache)

 

Novamente, ao contrário dos bancos de dados NoSQL, como MongoDB e PostreSQL, o Redis armazena dados na memória principal do servidor em vez de em discos rígidos e 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 (Redis queue)

 

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 (Redis client)

 

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.

Recursos

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

Redis Sentinel

 

O Redis Sentinel (link externo a ibm.com) é um sistema distribuído independente que ajuda os desenvolvedores a calibrar suas instâncias para que estejam altamente disponíveis para os clientes.

O Sentinel usa uma série de processos de monitoramento, notificações e failovers automáticos para informar aos usuários quando há algo errado com instâncias mestre e escrava, enquanto reconfigura automaticamente novas conexões para aplicações quando necessário.

 

Redis Cluster

 

O Redis Cluster (link externo a ibm.com) é 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 é compatível com o uso de comandos de publicação e assinatura (Pub/Sub) (link externo a ibm.com), os usuários podem criar serviços de bate-papo 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 (link externo a ibm.com) 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 in-memory, o MongoDB é conhecido como um armazenamento de documentos em disco.

Embora ambas as soluções sejam criadas para finalidades diferentes, elas são frequentemente usadas juntas para maximizar a velocidade e a eficiência de um banco de dados NoSQL. Devido à sua capacidade de armazenamento em cache, o Redis pode localizar os dados necessários com extrema rapidez, 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 quase em tempo real.

Com a capacidade do MongoDB de armazenar quantidades significativas de dados e a capacidade do Redis de processá-los mais rapidamente, o emparelhamento oferece uma poderosa solução de gerenciamento de bancos de dados para uma variedade de 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 abaixo de um milissegundo, ele é ideal para análise em tempo real, campanhas publicitárias online e processos de aprendizado de máquina orientados por IA.

  • 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 a usar o Redis é um processo sem dificuldades, especialmente com o uso do Redis Desktop Manager (RDM) (link externo a do ibm.com). E, como o Redis e o RDM são de código aberto, as comunidades de desenvolvimento ativas estão sempre trabalhando para melhorar a eficiência da operação e evoluir continuamente as ferramentas e integrações compatíveis.

Para obter mais informações sobre como instalar e configurar o Redis, siga as instruções de configuração na comunidade (link externo a ibm.com).

Soluções relacionadas
IBM Cloud Databases for Redis

Um armazenamento de valores-chave in-memory de código aberto criado para a stack de aplicações moderna.

Explore o IBM Cloud Databases for Redis
Como escolher um banco de dados na IBM Cloud

Aprenda a escolher o banco de dados certo para sua aplicação nativa em nuvem.

O que é um banco de dados NoSQL?

Leia tudo o que você precisa saber sobre o NoSQL, um tipo de design de banco de dados que oferece mais flexibilidade do que os bancos de dados tradicionais.

Por que MongoDB?

Explore as funcionalidades e os 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 poderosos recursos de cache in-memory do Redis em seu stack de aplicações moderno. O Databases for Redis é uma solução pronta para empresas que permite dimensionar disco e RAM de forma independente, oferecendo a flexibilidade necessária para atender às crescentes demandas de recursos das aplicações mais inovadoras.

Explore o Cloud Databases for Redis