3

会社用のチャット システムを構築していますが、どのようにシステムを構築するのが最善でしょうか?

現在のセットアップは、PHP と Memcacheq を備えた Nginx HTTP サーバーです (チャット メッセージをユーザー自身のキューに追加するメッセージ キューとして)。次に、(Comet スタイルのリクエストを介して) Nginx サーバーをポーリングし、メッセージ キューに更新のクエリを実行します。

Memcacheq などのメッセージ キューを使用して、ユーザー間のチャットとサイト全体のチャットの両方を備えたチャット システムを処理することは良い考えですか、それとも MySQL に固執するのが最善でしょうか?

ありがとう!

4

4 に答える 4

3

Memcache は、やや古いデータがある場合 (またはクエリの実行時間が長くなるデータベース設計が不適切な場合) にのみ役立ちます。あなたの場合(チャットシステム)、データは新鮮であり、Memcacheを追加すると、私が見る限り、物事が複雑になる(読み取りパフォーマンスが低下する)だけです。memcache は、mysql と php の間の (RAM 上の) ミドルウェアと考えてください。データが古い場合、PHP は mysql にアクセスする必要がないため、移動時間は短縮されますが、新しいデータの場合、実際には負荷が増加します (memcache も PHP から変更をフェッチする必要があるため)。

要約すると、チャット システムに memcache を使用することはお勧めしません。ウェブをもっと検索することをお勧めします。http://blog.tech.stylefeeder.com/2008/08/22/memcached-vs-mysql/の良い投稿

于 2010-03-19T10:00:32.017 に答える
1

Memcacheq は MySQL よりもはるかに優れたパフォーマンスを発揮すると思います。

于 2010-03-19T08:06:31.827 に答える
1

Memcacheq は、Web リクエストの遅延を回避するのに役立つ優れたツールです。これは、php と mysql の間のバッファーとして機能しますが、mysql の代わりにはなりません。Memcacheq を使用すると、複数の分散メッセージ コンシューマが存在する可能性があるため、スケーリングが容易になります。

mysql にデータを保存し、時間のかかる操作を行う高負荷の php リクエストの間に配置することをお勧めします。これにより、ユーザーのページ読み込みが高速化され、Web サーバーが長いリクエストから解放されます。

Memcacheq はかなり高速です。多くのリソースを必要としません

于 2010-03-19T21:34:12.800 に答える
0

これを試してください: http://pushmodule.slact.net/。Nginx がコメットの処理を行い、PHP アプリケーションが行う必要があるのは、HTTP 要求をモジュールに送信することだけです。

于 2010-04-02T23:43:18.327 に答える