インメモリストレージとデータベースストレージのパフォーマンスの違いはどれくらい重要ですか[終了]

StackOverflow https://stackoverflow.com//questions/22000497

質問

signalrでチャットアプリケーションを作成しています。現在、メッセージを永続的に保存するためにデータベースに保存する機能がいくつかあります。ユーザーリストを実装したいと考えており、この記事を読み直しています。

http://www.asp.net/signalr/overview/signalr-20/hubs-api/mapping-users-to-connections#inmemory

インメモリ ストレージ間のこの違いはどの程度重要ですか?たとえば 1,000 人のユーザーと 10,000 人のユーザーが通常の速度 (たとえば 1 秒あたり 1 メッセージ) でメッセージをやり取りする場合 (砂糖が多量にある場合)、1 秒以上の違いはあるでしょうか?そして、それはどれほど役立つのでしょうか?パフォーマンスに関する以前のテストへの参照があれば、大変感謝します。

第二に、これは間違った方法かもしれませんが、ユーザーのリストを保存したい場合、複数のチャット ルームがある場合、ルームごとに個別の辞書が必要になると思いますか?もしそうなら、ユーザーが自分の部屋も生成できるようにしたいので、これは実現可能でしょうか。この方法でインメモリをどのように実現できるのかわかりません。

ありがとう

役に立ちましたか?

解決

回答のための単一のリンクを提供するのは嫌いですが、この OSS の完全に機能するチャット ルーム https://jabbr.net あなたが心配しているすべてに対処します。

ソース: https://github.com/jabbr/jabbr

主な懸念事項であるインメモリとデータベースについてコメントするには、次のようにします。DB はデータを永続化したり、アプリケーションをスケールアウトしたりする機能を追加しますが、インメモリよりもパフォーマンスが大幅に低下します。誤解しないでください。パフォーマンスが大幅に低いとはいえ、アプリによってはメッセージの送信に数秒かかるわけではありません...すべてはトレードオフです。

DB 指向のアーキテクチャを 1000 対 10,000 のユーザーに適用するかどうかは、すべて実装方法によって異なります。たとえば、スケールアウト プロバイダー REDIS はすべてメモリ内で実行されますが、一定の間隔でディスクに保存されます。これは明らかに非常に高速ですが、「ある程度の」データ損失が許容されます。

他のヒント

これは元の質問とは直接関係ありません。

インメモリストレージに保存することはできないと思います。 問題は、アプリケーション プールがリサイクルされると、メモリ内に保存されているすべてのメッセージが失われることです。

App Pool がいつリサイクルされるかを予測することはできません (リサイクルする特定の時間を手動で設定することは可能です)。それは数日または数時間で起こる可能性があります。

理想的には、次のような永続的な場所に保存したいとします。 データベース. 。データベースへの保存のパフォーマンスが心配な場合は、次のことができます。 非同期 データベース保存タスク。

この比較をご覧ください:

http://ruturaj.net/redis-memcached-tokyo-tyrant-and-mysql-comparison/

Redis(メモリ)はMySQL(クラシックDB)を上回ることは明らかに、それらの適用分野は強く異なるため、一般的にRedisはMySQLよりも優れているとは言えません。すべてのソフトウェア プロジェクトは独自の世界であり、さまざまなソリューションを適用できます。状況によっては、Redis と MySQL がプラットフォームのさまざまな部分で一緒に使用されます (例:Magento eコマース)

インメモリ ソリューションが必要か、標準データベースが必要かは、ユーザーが判断します。MySQL を使用すると、1 挿入/秒のスループットを簡単に達成できると思いますが、これは単なる意見です。「Redis 対応」の製品の実装を作成することをお勧めします。MySQL の使用を開始しますが、MySQL と Redis の両方に適応する抽象化レイヤーを介して使用します (そのようなレイヤーがオープンソースで利用できるかどうかはわかりませんが、独自のレイヤーをリリースすることはできます...)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top