Redis
 sql >> Database >  >> NoSQL >> Redis

Dovrei usare redis per memorizzare un gran numero di file binari?

Non userei Redis per un compito del genere. Altri prodotti si adatteranno meglio all'IMO.

Redis è un archivio dati in memoria. Se desideri archiviare 10-20 TB di dati, avrai bisogno di 10-20 TB di RAM, il che è costoso. Inoltre, l'allocatore di memoria è ottimizzato per oggetti piccoli, non grandi. Probabilmente dovresti tagliare i tuoi file in vari piccoli pezzi, non sarebbe molto conveniente.

Redis non fornisce una soluzione ad hoc per HA e failover. Viene fornita una replica master/slave (e funziona abbastanza bene), ma senza supporto per l'automazione di questo failover. I client devono essere abbastanza intelligenti da passare al server corretto. Qualcosa sul lato server (ma questo non è specificato) deve cambiare i ruoli tra i nodi master e slave in modo affidabile. In altre parole, Redis fornisce solo una soluzione HA/failover fai-da-te.

Lo sharding deve essere implementato sul lato client (come con memcached). Alcuni clienti lo supportano, ma non tutti. Il client più veloce (hiredis) no. Ad ogni modo, cose come il ribilanciamento devono essere implementate su Redis. Redis Cluster, che dovrebbe supportare tali capacità di sharding, non è ancora pronto.

Suggerirei di usare altre soluzioni. MongoDB con GridFS può essere una possibilità. Hadoop con HDFS è un altro. Se ti piacciono i progetti all'avanguardia, potresti provare Elliptics Network.