Dois-je utiliser redis pour stocker un grand nombre de fichiers binaires?
J'ai besoin de stocker énorme quantité de fichiers binaires (10 - 20 TB, chaque fichier allant de 512 ko à 100 MO).
J'ai besoin de savoir si Redis sera efficace pour mon système.
J'ai besoin propriétés suivantes dans mon système:
- Haute Disponibilité
- Basculement
- Sharding
J'ai l'intention d'utiliser un cluster de matériel de base pour réduire les coûts autant que possible. Veuillez indiquer les avantages et les inconvénients de la construction d'un tel système à l'aide de Redis. Je suis également préoccupé par beaucoup de ram exigences de Redis.
Vous devez vous connecter pour publier un commentaire.
Je ne voudrais pas utiliser Redis pour une telle tâche. D'autres produits seront un meilleur ajustement de l'OMI.
Redis est une banque de données en mémoire. Si vous souhaitez stocker de 10 à 20 to de données, vous aurez besoin de 10 à 20 to de RAM, ce qui est coûteux. En outre, l'allocateur de mémoire est optimisée pour les petits objets, pas de grandes. Vous seriez probablement avoir à couper vos fichiers en plusieurs petits morceaux, il ne serait pas vraiment pratique.
Redis ne pas fournir une ad-hoc solution de HA et de basculement. Une réplication maître/esclave est fourni (et fonctionne très bien), mais avec pas de support pour l'automatisation de ce basculement. Les Clients ont à être assez intelligent pour basculer vers le bon serveur. Quelque chose sur le côté serveur (mais ce n'est pas spécifié) a à échanger les rôles entre maîtres et esclaves nœuds de manière fiable. En d'autres termes, Redis seulement fournit un do-it-yourself HA/solution de basculement.
De fragmentation doit être mise en œuvre sur le côté client (comme avec memcached). Certains clients ont le support, mais pas tous d'entre eux. La manière la plus rapide du client (hiredis) ne fonctionne pas. De toute façon, des choses comme le rééquilibrage doit être mise en œuvre sur le dessus de Redis. Redis Cluster, qui est censé supporter une telle fragmentation des capacités n'est pas encore prêt.
Je suggère d'utiliser certains autres solutions. MongoDB avec GridFS peut être une possibilité. Hadoop avec HDFS en est une autre. Si vous aimez le bord de coupe de projets, vous voudrez peut-être donner le Elliptics Réseau un essai.