sql >> Base de Datos >  >> NoSQL >> Redis

¿Debo usar redis para almacenar una gran cantidad de archivos binarios?

No usaría Redis para tal tarea. En mi opinión, otros productos se ajustarán mejor.

Redis es un almacén de datos en memoria. Si desea almacenar de 10 a 20 TB de datos, necesitará de 10 a 20 TB de RAM, lo cual es costoso. Además, el asignador de memoria está optimizado para objetos pequeños, no grandes. Probablemente tendría que cortar sus archivos en varios pedazos pequeños, no sería muy conveniente.

Redis no proporciona una solución ad-hoc para HA y conmutación por error. 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 está especificado) tiene que cambiar los roles entre los nodos maestro y esclavo de una manera confiable. En otras palabras, Redis solo proporciona una solución de conmutación por error/HA que usted mismo puede hacer.

La fragmentación debe implementarse en el lado del cliente (como con Memcached). Algunos clientes tienen soporte para ello, 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 tales capacidades de fragmentación, aún no está listo.

Sugeriría usar algunas otras soluciones. MongoDB con GridFS puede ser una posibilidad. Hadoop con HDFS es otro. Si le gustan los proyectos de vanguardia, es posible que desee probar Elliptics Network.