Jeg ville ikke bruge Redis til sådan en opgave. Andre produkter vil passe bedre til IMO.
Redis er et datalager i hukommelsen. Hvis du vil gemme 10-20 TB data, skal du bruge 10-20 TB RAM, hvilket er dyrt. Desuden er hukommelsesallokatoren optimeret til små objekter, ikke store. Du ville sandsynligvis skulle skære dine filer i forskellige små stykker, det ville ikke være rigtig praktisk.
Redis leverer ikke en ad hoc-løsning til HA og failover. En master/slave-replikering er tilvejebragt (og fungerer ganske godt), men uden understøttelse af automatiseringen af denne failover. Klienter skal være smarte nok til at skifte til den rigtige server. Noget på serversiden (men dette er uspecificeret) skal skifte rollerne mellem master- og slaveknudepunkter på en pålidelig måde. Med andre ord leverer Redis kun en gør-det-selv HA/failover-løsning.
Sharding skal implementeres på klientsiden (som med memcached). Nogle klienter har støtte til det, men ikke alle. Den hurtigste klient (hiredis) gør det ikke. Under alle omstændigheder skal ting som rebalancering implementeres oven på Redis. Redis Cluster, som formodes at understøtte sådanne sharding-funktioner, er ikke klar endnu.
Jeg vil foreslå at bruge nogle andre løsninger. MongoDB med GridFS kan være en mulighed. Hadoop med HDFS er en anden. Hvis du kan lide banebrydende projekter, kan du prøve Elliptics Network.