Redis bych na takový úkol nepoužil. Jiné produkty budou IMO vhodnější.
Redis je úložiště dat v paměti. Pokud chcete uložit 10-20 TB dat, budete potřebovat 10-20 TB RAM, což je drahé. Kromě toho je alokátor paměti optimalizován pro malé objekty, nikoli pro velké. Pravděpodobně byste museli své soubory rozřezat na různé malé kousky, to by nebylo příliš pohodlné.
Redis neposkytuje ad-hoc řešení pro HA a převzetí služeb při selhání. K dispozici je replikace master/slave (a funguje docela dobře), ale bez podpory automatizace tohoto převzetí služeb při selhání. Klienti musí být dostatečně chytří, aby přešli na správný server. Něco na straně serveru (ale to není specifikováno) musí spolehlivě přepínat role mezi master a slave uzly. Jinými slovy, Redis poskytuje pouze řešení HA/failover pro vlastní potřebu.
Sharding musí být implementován na straně klienta (jako u memcached). Někteří klienti pro to mají podporu, ale ne všichni. Nejrychlejší klient (hiredis) ne. Každopádně věci jako rebalancování musí být implementovány nad Redis. Redis Cluster, který by měl podporovat takové možnosti sdílení, ještě není připraven.
Doporučuji použít jiná řešení. MongoDB s GridFS může být možností. Hadoop s HDFS je další. Pokud máte rádi špičkové projekty, možná budete chtít vyzkoušet síť Elliptics.