Redis

Datastore de código aberto, rápido e na memória e para uso como banco de dados, cache, agente de mensagens e fila.

O que é o Redis?

O Redis é um datastore de chave-valor rápido, de código aberto e na memória para uso como banco de dados, cache, agente de mensagens e fila. O serviço fornece tempos de resposta inferiores a um milissegundo para atender a milhões de solicitações por segundo, o que viabiliza aplicativos em tempo real nas áreas de jogos, tecnologia de anúncios, serviços financeiros, saúde e IoT. O Redis é uma escolha comum para armazenamento em cache, gerenciamento de sessões, análises em tempo real, análises geoespaciais, chat/sistema de mensagens, streaming de mídia e placares de jogos.

Como funciona o Redis?

Todos os dados do Redis residem na memória, ao contrário de banco de dados que armazenam dados em discos ou SSDs. A eliminação da necessidade de acessar discos permite que datastores na memória, como o Redis, evitem tempos de pesquisa e acessem os dados em microssegundos. O Redis oferece estruturas de dados versáteis, alta disponibilidade, análises geoespaciais, scripts Lua, transações, persistência em disco e suporte a clusters para simplificar a criação de aplicativos em tempo real na escala da Internet.

Amazon ElastiCache para Redis

Redis gerenciado com criptografia, redimensionamento de clusters online, alta disponibilidade e conformidade. Saiba mais >>

Benefícios do Redis

Datastore na memória

Todos os dados do Redis residem na memória principal do servidor, ao contrário de bancos de dados como PostgreSQL, Cassandra, MongoDB e outros que armazenam a maioria dos dados em discos ou SSDs. Nos bancos de dados tradicionais, baseados em disco, a maioria das operações exige acesso ao disco. Por outro lado, datastores na memória como o Redis não têm essa limitação. Dessa forma, os armazenamentos na memória podem oferecer suporte a volumes de operações e tempos de resposta que são uma ordem de magnitude maiores que as demais soluções de armazenamento. O resultado: performance excepcional, com operações de leitura ou gravação demorando em média menos de um milissegundo e suporte a milhões de operações por segundo.

Estruturas flexíveis de dados

Ao contrário de datastores de chave-valor simples, que oferecem estruturas de dados limitadas, o Redis oferece uma grande variedade de estruturas de dados para atender aos requisitos dos aplicativos. Os tipos de dados do Redis incluem:

  • Strings – dados em texto ou binários com tamanho de até 512 MB
  • Listas – uma coleção de strings na ordem em que foram adicionadas
  • Conjuntos – uma coleção não ordenada de strings com o recurso de executar operações de intersecção, união e diferente com outros tipos de conjuntos
  • Conjuntos ordenados – conjuntos ordenados por um valor
  • Hashes – uma estrutura de dados para armazenar uma lista de campos e valores
  • Bitmaps – um tipo de dados que oferece operações com bits
  • HyperLogLogs – uma estrutura de dados probabilística para estimar os dados únicos em um conjunto de dados

Simplicidade e facilidade de uso

O Redis simplifica a codificação, reduzindo a quantidade de código necessária para armazenar, acessar e usar dados em aplicativos. Por exemplo, se o aplicativo tiver dados armazenados em um hashmap e você quiser armazenar esses dados em um datastore, basta usar a estrutura de dados de hash do Redis para armazenar os dados. Uma tarefa similar, em um datastore sem estruturas de dados de hash, exigiria muitas linhas de código para a conversão de um formato para o outro. O Redis é fornecido com estruturas de dados nativas e várias opções para manipular e interagir com dados. Mais de cem clientes de código aberto estão disponíveis para os desenvolvedores do Redis. As linguagens compatíveis incluem Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go e muitas outras.

Replicação e persistência

O Redis emprega uma arquitetura de réplica principal e oferece suporte à replicação assíncrona, o que permite a replicação de dados para vários servidores de réplica. Essa arquitetura oferece maior performance de leitura (com a distribuição das solicitações entre vários servidores) e recuperação quando o servidor primário sofre uma interrupção. Para proporcionar persistência, o Redis oferece suporte a backups point-in-time (cópia do conjunto de dados do Redis para disco).

Alta disponibilidade e escalabilidade

O Redis oferece uma arquitetura de réplica principal em um único nó principal ou em uma topologia de clusters. Dessa forma, você pode criar soluções altamente disponíveis que oferecem performance e confiabilidade consistentes. Quando for necessário ajustar o tamanho do cluster, você poderá usar uma das diversas opções de escalabilidade vertical ou horizontal disponíveis. Assim, o cluster pode crescer com a demanda.

Extensibilidade

O Redis é um projeto de código aberto que conta com o suporte de uma comunidade vibrante. Não há aprisionamento a nenhum fornecedor ou tecnologia, pois o Redis é baseado em padrões abertos, compatível com formatos de dados abertos e disponibiliza um conjunto avançado de clientes.

Armazenamento em cache

O Redis é uma excelente escolha para a implementação de caches de memória altamente disponíveis para diminuir a latência de acesso aos dados, aumentar o throughput e aliviar a sobrecarga de aplicativos e bancos de dados relacionais ou NoSQL. O Redis pode fornecer itens frequentemente solicitados com um tempo de resposta inferior a um milissegundo. Além disso, pode escalar facilmente para processar cargas maiores sem necessidade de aumentar o back-end de alto custo. Entre os exemplos mais comuns de armazenamento em cache com o Redis, estão resultados de consultas de banco de dados, sessões persistentes, páginas web e objetos frequentemente usados como imagens, arquivos e metadados.

Chat, sistemas de mensagens e filas

O Redis oferece suporte a Pub/Sub com correspondência de padrões e a várias estruturas de dados como listas, conjuntos ordenados e hashes. Assim, o Redis pode oferecer suporte a salas de chat de alta performance, streams de comentários em tempo real, feeds de mídia social e intercomunicação de servidores. A estrutura de dados Redis List facilita a implementação de uma fila leve. As listas oferecem operações atômicas e recursos de bloqueio e são adequadas para vários aplicativos que exigem um agente de mensagens ou uma lista circular confiável.

Placares de jogos

O Redis é uma escolha comum de desenvolvedores de jogos que precisam criar placares em tempo real. Basta usar a estrutura de dados Sorted Set do Redis que disponibiliza a especificidade de elementos enquanto mantém a lista classificada de acordo com suas pontuações. A criação de uma lista classificada em tempo real é tão fácil quanto atualizar a pontuação de um usuário toda vez que ela muda. Você também pode usar conjuntos classificados para processar dados de séries temporais usando time stamps como pontuação.

Armazenamento de sessões

O Redis é um datastore na memória com alta disponibilidade e persistência, escolhido frequentemente por desenvolvedores de aplicativos para armazenar e gerenciar dados de sessão para aplicativos na escala da Internet. O Redis oferece a latência inferior a um milissegundo, a escala e a resiliência necessárias para gerenciar dados de sessão como perfis de usuário, credenciais, estados de sessão e personalizações específicas de usuários.

Streaming de mídia avançada

O Redis oferece um datastore rápido na memória para viabilizar casos de uso de streaming ao vivo. O Redis pode ser usado para armazenar metadados sobre perfis de usuários, visualização de históricos e informações/tokens de autenticação para milhões de usuários, bem como armazenar arquivos manifesto para possibilitar que CDNs façam streaming de vídeo para milhões de usuários de dispositivos móveis e desktops ao mesmo tempo.

Dados geoespaciais

O Redis oferece estruturas e operadores de dados na memória para uso específico, o que permite gerenciar em tempo real dados geoespaciais em grande escala e velocidade. Comandos como GEOADD, GEODIST, GEORADIUS e GEORADIUSBYMEMBER para armazenar, processar e analisar dados geoespaciais em tempo real facilitam e agilizam o uso de recursos geoespaciais com o Redis. Você pode usar o Redis para adicionar aos aplicativos recursos baseados em localização como tempo de percurso, distância do percurso e pontos de interesse.

Machine Learning

Aplicativos modernos e orientados a dados exigem machine learning para processar rapidamente um grande volume e variedade de dados e automatizar a tomada de decisões. Para casos de uso como detecção de fraudes em jogos e serviços financeiros, fazer ofertas em tempo real em tecnologia de anúncios e matchmaking para encontros e transporte solidário, a capacidade de processar dados ao vivo e tomar decisões em dezenas de milissegundos é fundamental. O Redis oferece um datastore ágil na memória para criar, treinar e implantar rapidamente modelos de Machine Learning.

Análise em tempo real

O Redis pode ser usado com soluções de streaming como Apache Kafka e Amazon Kinesis, atuando como datastore na memória para consumir, processar e analisar dados em tempo real com latência inferior a um milissegundo. O Redis é uma escolha ideal para casos de uso de análises em tempo real, como análises de mídia social, direcionamento de anúncios, personalização e IoT.

Suporte a linguagens

O Redis oferece suporte à maioria das principais linguagens e protocolos de comunicação, incluindo:

Python

Java

PHP

Redis gerenciado na AWS

O Amazon oferece um serviço de Redis gerenciado, o Amazon ElastiCache para Redis, disponível para testes sem custo adicional com o nível gratuito da AWS. O Amazon ElastiCache para Redis facilita a configuração, a operação e a escalabilidade de implantações do Redis na nuvem. Com o Amazon ElastiCache, você pode implantar o Redis na escala da Internet em questão de minutos, com capacidade de hardware econômica e redimensionável.
Comece a usar o Amazon ElastiCache para Redis gratuitamente em três etapas fáceis:
Amazon ElastiCache para Redis

Cadastrar-se

Aprenda o Amazon ElastiCache para Redis

Aprenda com tutoriais simples

Comece a usar o ElastiCache para Redis

Comece a criar

Comece a criar com a ajuda do guia do usuário.