No utilizaría Redis para tal tarea. Otros productos se adaptarán mejor a la OMI.
Redis es un almacén de datos en memoria. Si desea almacenar 10-20 TB de datos, necesitará 10-20 TB de RAM, lo cual es costoso. Además, el asignador de memoria está optimizado para objetos pequeños, no grandes. Probablemente tendrías que cortar tus archivos en varios pedazos pequeños, no sería realmente conveniente.
Redis no proporciona una solución ad-hoc para HA y failover. Se proporciona una replicación maestro/esclavo (y funciona bastante bien), pero no admite la automatización de esta conmutación por error. Los clientes deben ser lo suficientemente inteligentes como para cambiar al servidor correcto. Algo en el lado del servidor (pero esto no se especifica) tiene que cambiar los roles entre el maestro y los nodos esclavos de una manera confiable. En otras palabras, Redis solo proporciona una solución de HA/Failover de hágalo usted mismo.
Sharding tiene que implementarse en el lado del cliente (como con memcached). Algunos clientes tienen soporte, pero no todos. El cliente más rápido (hiredis) no lo hace. De todos modos, cosas como el reequilibrio deben implementarse además de Redis. Redis Cluster, que se supone que admite dichas capacidades de fragmentación, aún no está listo.
Sugeriría utilizar algunas otras soluciones. MongoDB con GridFS puede ser una posibilidad. Hadoop con HDFS es otro. Si le gustan los proyectos de vanguardia, puede darle una oportunidad al Elliptics Network.
Su sistema necesita almacenar * archivos *, usted dice? ¡Este es sin duda un requisito único que nadie ha enfrentado antes! Me pregunto si ... no, nada me viene a la mente. Te deseo suerte inventando esto ... "sistema de archivos", como supongo que uno podría llamarlo. –