Dois-je utiliser redis pour stocker un grand nombre de fichiers binaires? [fermé]

J'ai besoin de stocker une énorme quantité de fichiers binaires (10 - 20 to, chaque fichier allant de 512 Ko à 100 Mo).

J'ai besoin de savoir si Redis sera efficace pour mon système. J'ai besoin des 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 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 la haute exigences ram de Redis.

23
demandé sur Mark Amery 2012-01-09 13:41:17

1 réponses

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 voulez stocker 10-20 To de données, vous aurez besoin de 10-20 To de RAM, ce qui est cher. En outre, l'allocateur de mémoire est optimisé pour les petits objets, pas les grands. Vous auriez probablement à couper vos fichiers en divers petits morceaux, ce ne serait pas vraiment pratique.

Redis ne fournit pas de solution ad hoc pour HA et basculement. Maître/esclave la réplication est fournie (et fonctionne assez 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 côté serveur (mais ce n'est pas spécifié) doit changer les rôles entre les nœuds maître et esclave de manière fiable. En d'autres termes, Redis ne fournit qu'une solution de basculement HA/do-it-yourself.

Le Sharding doit être implémenté côté client (comme avec memcached). Certains clients ont un soutien pour cela, mais pas tous d'entre eux. 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 œuvre au-dessus de Redis. Le Cluster Redis qui est censé prendre en charge de telles capacités de sharding n'est pas encore prêt.

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

22
répondu Didier Spezia 2017-01-13 14:35:08