Nie użyłbym Redisa do takiego zadania. Inne produkty będą lepiej pasować do IMO.
Redis to magazyn danych w pamięci. Jeśli chcesz przechowywać 10-20 TB danych, potrzebujesz 10-20 TB pamięci RAM, co jest drogie. Co więcej, alokator pamięci jest zoptymalizowany pod kątem małych obiektów, a nie dużych. Prawdopodobnie musiałbyś pociąć swoje pliki na różne małe kawałki, nie byłoby to zbyt wygodne.
Redis nie zapewnia rozwiązania ad hoc dla HA i przełączania awaryjnego. Dostępna jest replikacja master/slave (i działa całkiem dobrze), ale bez obsługi automatyzacji tego przełączania awaryjnego. Klienci muszą być wystarczająco sprytni, aby przełączyć się na właściwy serwer. Coś po stronie serwera (ale jest to nieokreślone) musi w niezawodny sposób przełączać role między węzłami master i slave. Innymi słowy, Redis zapewnia tylko rozwiązanie HA/failover zrób to sam.
Sharding musi być zaimplementowany po stronie klienta (jak w przypadku memcached). Niektórzy klienci mają na to wsparcie, ale nie wszyscy. Najszybszy klient (hiredis) nie. W każdym razie takie rzeczy, jak ponowne równoważenie, muszą zostać zaimplementowane na Redis. Klaster Redis, który ma wspierać takie możliwości shardingu, nie jest jeszcze gotowy.
Proponowałbym skorzystać z innych rozwiązań. MongoDB z GridFS może być możliwością. Hadoop z HDFS to kolejna. Jeśli lubisz nowatorskie projekty, możesz spróbować Elliptics Network.