1

プロジェクトでは、キュー ライブラリを作成し、基本的に URL をセットに格納します (実際には、キーを true に設定したオブジェクトですが、配列として表示できます)、キューはすべての URL を 1 回だけ取得します。これは非常にうまく機能しますが、URL が多く、RAM 使用量が非常に高くなるという問題に直面しています。

そのため、次の要件でディスク上のキー値ストアを使用したいと考えています (実際にはキーのみが必要であり、別のアプローチがあるかどうかはわかりません)。

  • データセット全体を RAM にロードする必要はありません
  • 迅速な検索
  • Node.js バインディング

安全すぎる必要はありません (たまにデータを失うことは大きな問題ではなく、RAM 要件が低いことがより重要です)。このシナリオで Node.JS を使用しても、このルックアップを必ずしも実行する必要はありません。非同期。

実際には、ディスク上のキーと値のアプローチよりも優れた方法があるかどうかという副次的な質問があります。用語はいいでしょう。ルックアップテーブルを使用すると、常にデータセット (IP、郵便番号など) を見つけることができます。

4

2 に答える 2

0

本当に「あまり安全である必要がない」場合は、別の設計として、すべてをメモリに保存し続けますが、たとえば LRU キャッシュを使用して、保存する URL の数を制限します。

node.js でキャッシュを使用するか ( Googleで簡単に見つけることができます)、別の memcached サーバーを同じマシン上で使用することができます。

于 2013-11-18T06:47:41.250 に答える
0

(URLを保存するために)単一の列を持つSQLテーブルを使用します。redis (ほぼすべてをメモリに格納する) よりもメモリ使用量を適切に制御できます。

  • 同じ値がすでに存在するかどうかを簡単に確認できます
  • 挿入しやすい
  • 1つの要素を簡単に削除できます
于 2013-02-05T22:56:52.223 に答える