O MongoDB é um banco de dados orientado a documentos e baseado em disco. Redis é um armazenamento em memória, persistente armazenamento na estrutura de dados. Ambos os bancos de dados se enquadram na categoria NoSQL – na medida em que são usados ​​para solucionar problemas de computação e armazenamento de dados para os quais o uso das soluções RDBMS tradicionais seria como usar um martelo para matar uma formiga.

Mas Redis e MongoDB são bem diferentes e otimizados para diferentes usos. O MongoDB baseado em disco é otimizado para simplicidade operacional, design sem esquema e volumes de dados muito grandes.

O Redis, por outro lado, é um armazenamento em memoria, NoSQL, armazenamento de estruturas de dados, frequentemente usado como banco de dados, cache ou intermediário de mensagens. Diferente de outros armazenamentos em memória, ele persiste nos dados e é notavelmente versátil devido às suas estruturas de dados (Conjuntos, Conjuntos Classificados, Hashes, Listas, Strings, Matrizes de Bits). O Redis permite que os desenvolvedores realizem operações comuns nessas estruturas com a menor complexidade possível e o desempenho mais alto possível. Em outras palavras, o Redis foi desenvolvido especificamente para desempenho e simplicidade.

MongoDB e Redis

Um caso de uso muito comum e relevante para os usuários do MongoDB é o uso do Redis como um buffer de ingestão de dados. O MongoDB é ótimo para lidar com qualquer volume ou variedade de dados gerados. No entanto, a velocidade extrema representa um desafio para qualquer banco de dados baseado em disco. Por isso, quando há milhões de pontos de dados chegando ao seu aplicativo, usar um banco de dados baseado diretamente em disco significa, de forma simples, que há o risco de perder dados ou criar filas excessivamente longas para armazenar dados que ainda serão processados.

Dessa forma, dispositivos móveis, IoT, APIs e aplicativos on-line massivos geralmente têm esse problema. Há muitos dados sendo gerados para serem digeridos por qualquer banco de dados baseado em disco, mesmo que seja para armazenamento e análise de lotes. Então, o processamento em tempo real é algo que não pode ser alcançado com bancos de dados baseados em disco, sem hardwares caros no problema.

Assim, é aqui que o Redis entra. Redis executa de forma muito eficiente na memória, tornando-se radicalmente simples permitir a análise em tempo real de dados em movimento rápido, transferindo parte do processamento para si.
Outro cenário acontece quando vários documentos no MongoDB são atualizados simultaneamente ou em sucessão muito próxima. Afinal, toda atualização aciona uma gravação no banco de dados. Ao usar Redis, que lida com uma taxa de transferência extremamente alta em latências muito baixas, você pode gerenciar as atualizações na memória e consolidar gravações no banco de dados baseado em disco. Enfim, essa abordagem reduz as necessidades de hardware e gera economia nos custos operacionais.

Por fim, tem muito mais no ebook completo e gratuito “Por que seu MongoDB precisa de Redis”. Aproveite para baixar e ler sempre que quiser ou consultar sempre que precisar.