2012-01-09 2 views
20

Je dois stocker énormément de fichiers binaires (10 - 20 To, chaque fichier allant de 512 Ko à 100 Mo).Dois-je utiliser redis pour stocker un grand nombre de fichiers binaires?

J'ai besoin de savoir si Redis sera efficace pour mon système. Je besoin de propriétés suivantes dans mon système:

  • haute disponibilité
  • Failover
  • Sharding

Je compte utiliser un ensemble de matériel de base pour réduire les coûts autant que possible. S'il vous plaît suggérer les avantages et les inconvénients de la construction d'un tel système en utilisant Redis. Je suis également préoccupé par les besoins élevés en RAM de Redis.

+2

Votre système doit stocker des * fichiers *, dites-vous? C'est certainement une exigence unique que personne n'a jamais rencontrée auparavant! Je me demande si ... non, rien ne vient à l'esprit. Je vous souhaite bonne chance pour inventer ce "système de fichiers", comme on pourrait l'appeler. –

Répondre

17

Je n'utiliserais pas Redis pour une telle tâche. D'autres produits seront un meilleur ajustement IMO.

Redis est un magasin de données en mémoire. Si vous souhaitez stocker 10 à 20 To de données, vous aurez besoin de 10 à 20 To de RAM, ce qui est coûteux. De plus, l'allocateur de mémoire est optimisé pour les petits objets, pas les gros. Vous auriez probablement à couper vos fichiers dans divers petits morceaux, ce ne serait pas vraiment pratique. Redis ne fournit pas de solution ad-hoc pour HA et le basculement. Une réplication maître/esclave est fournie (et fonctionne plutôt bien), mais sans prise en charge de l'automatisation de ce basculement. Les clients doivent être assez intelligents pour passer au bon serveur. Quelque chose du côté serveur (mais ce n'est pas spécifié) doit basculer les rôles entre les nœuds maîtres et esclaves d'une manière fiable. En d'autres termes, Redis fournit uniquement une solution HA/failover de bricolage.

Le sharding doit être implémenté côté client (comme avec memcached). Certains clients ont un support pour cela, mais pas tous. Le client le plus rapide (hiredis) ne le fait pas. Quoi qu'il en soit, des choses comme le rééquilibrage doivent être mises en place au-dessus de Redis. Redis Cluster qui est supposé supporter de telles capacités de fragmentation n'est pas encore prêt.

Je suggère d'utiliser d'autres solutions. MongoDB avec GridFS peut être une possibilité. Hadoop avec HDFS en est un autre. Si vous aimez les projets de pointe, vous pouvez essayer le Elliptics Network.

+3

Le lien HDFS est 404'd, essayez: http://hadoop.apache.org/docs/stable/hdfs_design.html – Seaux

+1

Correction, merci! –

+1

Le lien est à nouveau rompu, cela pourrait être bon: http://hadoop.apache.org/docs/r1.2.1/hdfs_design.html, mais est spécifique à la version. Apache ne semble pas avoir une page HDFS de haut niveau. – ravi

Questions connexes