2016-09-14 14 views
0

node.jsマルチプレイヤーカードゲームアプリケーションを開発中です。同時に4人のプレイヤーがプレイします。Node.jsオブジェクトをデータベースまたは配列に格納しますか?

私は進行中のすべてのゲームを含むオブジェクトの配列を持っています 私のサーバーアプリケーションにはメモリの問題がありますか?

オブジェクトをデータベースに格納して毎回読み取ると、データ接続はより多く使用されますがメモリは少なくなります。このような状況での最良のアプローチは何ですか?

+1

データセットの大きさ、アクセス頻度、サーバーがダウンした場合にどれだけ保持する必要があるか(どれも共有していない)データサイズが大きすぎて永続性が必要な場合や複数のプロセスアクセスが必要な場合を除いて、メモリが優先されます。 – jfriend00

+0

私の例では、ゲームオブジェクトには各ユーザーが15-20秒ごとにアクセスします(この場合は20,000人のユーザー)。私の例では、データサイズが大きすぎると思わないと、「データサイズが大きすぎないとメモリが優先されます」というデータが残ることはありません。 – jeromeb

+0

データの量はどれくらいですか? – jfriend00

答えて

0

実際にデータをメモリに保存することができれば、通常はより高速で複雑なソリューションが得られます。

  1. あなたが複数のプロセスからのアクセスを必要とする:

    は、ここでは、代わりにデータベースを使用する必要があります理由からです。

  2. データの永続性が必要です(サーバーを再起動またはクラッシュする必要がある場合)。
  3. メモリに収まるよりも多くのデータを保存しています。
  4. 標準的なデータベースには、すでに組み込まれている特定の並行処理機能またはトランザクション機能が必要です。
  5. 既存のデータベースの特定の検索/索引付け機能を使用したいとします。

これらの理由のいずれも、サーバーを使用している他のメモリの容量に応じて、データベースにデータを格納するのではなく、データが快適にメモリに格納されます(node.jsがおそらく500MB-1GB未満)十分なランタイムメモリがあれば、通常、メモリからデータを保存してアクセスする方が高速かつ簡単です。

関連する問題