2012-01-09 11 views
20

私は膨大な量のバイナリファイル(10〜20 TB、各ファイルの範囲は512 KB〜100 MB)を保存する必要があります。Redisを使用して多数のバイナリファイルを保存する必要がありますか?

私のシステムでRedisが効率的かどうかを知る必要があります。

  • 高可用性、私は可能な限りコスト削減にコモディティハードウェアのクラスタを使用するフェイルオーバー
  • シャーディング
    • : は、私は私のシステムで次のプロパティを必要とします。 Redisを使用してそのようなシステムを構築することの賛否両論を提案してください。私はまた、レディスの高いラム必要性に懸念しています。

    +2

    *ファイル*を保存する必要がありますか?誰も直面していなかったことは、これは確かにユニークな要件です!私は...いいえ、何も気にしないと思います。私はあなたがこれを発明して欲しいと願っています... "ファイルシステム"と呼んでいます。 –

    答えて

    17

    私はそのようなタスクにRedisを使用しません。他の製品は、よりフィットするIMOになります。

    Redisはメモリ内のデータストアです。 10〜20 TBのデータを保存する場合は、10〜20 TBのRAMが必要になりますが、これは高価です。さらに、メモリアロケータは、大きなオブジェクトではなく小さなオブジェクトに対して最適化されています。あなたはおそらく、さまざまな小さな作品であなたのファイルをカットする必要があります、それは本当に便利ではないでしょう。

    Redisは、HAとフェールオーバーのアドホックソリューションを提供しません。マスタ/スレーブレプリケーションは提供されていますが、このフェールオーバーの自動化はサポートされていません。クライアントは、適切なサーバーに切り替えるほどスマートでなければなりません。サーバ側の何か(ただしこれは不特定)は、信頼できる方法でマスタノードとスレーブノード間の役割を切り替える必要があります。言い換えれば、レディスは独自のHA /フェールオーバーソリューションしか提供していません。

    shardingは(memcachedのように)クライアント側で実装する必要があります。クライアントの中にはサポートしているものもあれば、サポートしていないものもあります。最速のクライアント(hiredis)はありません。とにかく、再調整のようなものはRedisの上に実装されなければなりません。そのようなシャーディング機能をサポートするはずのRedis Clusterはまだ準備ができていません。

    私は他の解決策を使用することをお勧めします。 GridFSのMongoDBは可能性があります。 HDFSのHadoopは別のものです。最先端のプロジェクトが好きなら、Elliptics Networkを試してみてください。

    +3

    HDFSのリンクは404です。試してみてください:http://hadoop.apache.org/docs/stable/hdfs_design.html – Seaux

    +1

    固定、ありがとう! –

    +1

    リンクがもう一度壊れている、これは良いかもしれません:http://hadoop.apache.org/docs/r1.2.1/hdfs_design.html、しかしバージョン特有です。 ApacheはトップレベルのHDFSページを持っていないようです。 – ravi

    関連する問題