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.
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. –