Redis é um remoto servidor de estrutura de dados. Certamente é mais lento do que apenas armazenar os dados na memória local (já que envolve ida e volta do soquete para buscar/armazenar os dados). No entanto, também traz algumas propriedades interessantes:
-
O Redis pode ser acessado por todos os processos de suas aplicações, possivelmente rodando em vários nós (algo que a memória local não consegue alcançar).
-
O armazenamento de memória Redis é bastante eficiente e feito em um processo separado. Se a aplicação roda em uma plataforma cuja memória é coletada como lixo (node.js, java, etc...), ela permite manipular um cache/store de memória muito maior. Na prática, heaps muito grandes não funcionam bem com linguagens coletadas por lixo.
-
O Redis pode persistir os dados no disco, se necessário.
-
O Redis é um pouco mais do que um simples cache:ele fornece várias estruturas de dados, várias políticas de despejo de itens, filas de bloqueio, pub/sub, atomicidade, scripts Lua, etc...
-
O Redis pode replicar sua atividade com um mecanismo mestre/escravo para implementar alta disponibilidade.
Basicamente, se você precisar que seu aplicativo seja dimensionado em vários nós compartilhando os mesmos dados, será necessário algo como Redis (ou qualquer outro armazenamento remoto de chave/valor).