2

集中デシベルからJSONリストを読み込むノードJSアプリケーションを、開発していNode.js、オブジェクトをメモリまたはデータベースに保存しますか?

一覧Objectは(txtファイルに保存されている場合)1.2メガバイト

要件のような、データはすべての24に更新されるようになっているの周りにあります時間、私はデータをフェッチした後、私はローカル

データアクセスが私の周りに1または2を取得、非常に頻繁に私のサーバー上で実行されているデシベル(Couchbaseの)にそれを保つ今

それのためにcronジョブを保持req per secとほぼすべてのreqが必要ですObject

Objectをノードjsのメモリオブジェクトとして保持するか、それをローカルデータベースに保持するのがよいですか?

両方のメリットとデメリットは何ですか?

Objectのみのみcronジョブによって、一度書かれた、すべての要求のために読ん

それはそれはあなたのハードウェアから依存ハイエンドシステム、i7のクアッドコア、16ギガバイトのRAM

+0

"InProc"オブジェクトは、どのDBよりもアクセスが大幅に高速になります。しかし明らかにその量のメモリを使用します。また、メモリリークに注意する必要があります。それはすべて、言った、これに適切なanwerは、あなたのより広い実装で完全にdepdantですので、これに答えることができる唯一の可能性があります。それを試してみて – Liam

+0

を参照してください。オブジェクトのコピーを開始すると、膨大な量のRAMを消費する可能性がありますが、正しく実行された場合、メモリオブジェクト内では、より速いパフォーマンスが得られます。 – Paradoxis

+0

jsonオブジェクトとモジュール.exports私は他の場所からアクセスできるように、そのオブジェクトを公開しました。また、他の場所からアクセスしている間、私はあらかじめそのヌルがチェックされていますか?それは良いですか? –

答えて

2
  1. このオブジェクトが不変の場合、要求ごとにメモリに保持する方がよいでしょう。ない場合 - 依存します。
  2. いずれにしても、db-fetch data-result-freeデータへのワークフローオープン接続は、メモリにキャッシュするよりも多くのリソースを消費します。たとえば、

は、私たちのプロジェクトでは、我々は、高精細な画像を処理し、メモリ内のすべてのオブジェクトを維持 - 3〜7メガバイトを生の形式で。テストによれば、これは、レディスやソファベースのようなキャッシングシステムの使用よりも非常に効率的です。

+0

は不変である –

1

最新のバージョンをメモリオブジェクトとして保存しておきます。何かがクラッシュした場合、その方法でバックアップを取ることができます。ただし、ファイルを編集する場合は、データベースオブジェクトとしてのみ保持します。

2秒ごとにそのオブジェクトのDBにアクセスするとうまくいくでしょうが、1.2MBのメモリはそれほど多くはないので、それを保持することができれば、サーバは問題に陥ることはありません。

DBはメモリに比べて少し遅いですが、(おそらく)スレッドセーフであるという利点があります。ドキュメントを編集すると、メモリオブジェクトでスレッドの問題が発生する可能性があります。

あなたはアプリケーションと要件を知っているので、スレッドセーフなデータベースが必要かどうか、サーバー上のメモリを安全にする必要があるかどうかを知ることができます。もしわからないのであれば、実際のコードとユースケースを見て、あなたが何が最善のものかを教えてください。

+0

屋私はバックアップとしてTXT保つそれを行うだろう –

関連する問題