Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Sollte ich Redis verwenden, um eine große Anzahl von Binärdateien zu speichern?

Ich würde Redis für eine solche Aufgabe nicht verwenden. Andere Produkte passen meiner Meinung nach besser.

Redis ist ein In-Memory-Datenspeicher. Wenn Sie 10-20 TB Daten speichern möchten, benötigen Sie 10-20 TB RAM, was teuer ist. Darüber hinaus ist der Speicherzuordner für kleine Objekte optimiert, nicht für große. Sie müssten Ihre Dateien wahrscheinlich in verschiedene kleine Stücke schneiden, das wäre nicht wirklich praktisch.

Redis bietet keine Ad-hoc-Lösung für HA und Failover. Eine Master/Slave-Replikation wird bereitgestellt (und funktioniert recht gut), jedoch ohne Unterstützung für die Automatisierung dieses Failover. Clients müssen schlau genug sein, um auf den richtigen Server zu wechseln. Etwas auf der Serverseite (aber das ist nicht spezifiziert) muss die Rollen zwischen Master- und Slave-Knoten zuverlässig wechseln. Mit anderen Worten, Redis bietet nur eine Do-it-yourself-HA/Failover-Lösung.

Sharding muss clientseitig implementiert werden (wie bei memcached). Einige Clients unterstützen dies, aber nicht alle. Der schnellste Client (hiredis) nicht. Auf jeden Fall müssen Dinge wie das Rebalancing auf Redis implementiert werden. Redis Cluster, das solche Sharding-Fähigkeiten unterstützen soll, ist noch nicht fertig.

Ich würde vorschlagen, einige andere Lösungen zu verwenden. MongoDB mit GridFS kann eine Möglichkeit sein. Hadoop mit HDFS ist eine andere. Wenn Sie innovative Projekte mögen, sollten Sie das Elliptics Network ausprobieren.