Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Devo usar redis para armazenar um grande número de arquivos binários?


Eu não usaria o Redis para tal tarefa. Outros produtos serão um melhor ajuste IMO.

Redis é um armazenamento de dados na memória. Se você deseja armazenar 10 a 20 TB de dados, precisará de 10 a 20 TB de RAM, o que é caro. Além disso, o alocador de memória é otimizado para objetos pequenos, não para objetos grandes. Você provavelmente teria que cortar seus arquivos em vários pedaços pequenos, não seria muito conveniente.

O Redis não fornece uma solução ad-hoc para HA e failover. Uma replicação mestre/escravo é fornecida (e funciona muito bem), mas sem suporte para a automação desse failover. Os clientes precisam ser inteligentes o suficiente para mudar para o servidor correto. Algo no lado do servidor (mas isso não é especificado) precisa alternar as funções entre os nós mestre e escravos de maneira confiável. Em outras palavras, o Redis fornece apenas uma solução de HA/failover do tipo faça você mesmo.

A fragmentação deve ser implementada no lado do cliente (como no memcached). Alguns clientes têm suporte para isso, mas nem todos. O cliente mais rápido (hiredis) não. De qualquer forma, coisas como rebalanceamento precisam ser implementadas em cima do Redis. O Redis Cluster, que deveria oferecer suporte a esses recursos de fragmentação, ainda não está pronto.

Sugiro usar algumas outras soluções. MongoDB com GridFS pode ser uma possibilidade. O Hadoop com HDFS é outro. Se você gosta de projetos de ponta, experimente a Elliptics Network.