2012-01-14 10 views
0

PHP:異なるサーバー上のスレッド間でデータを共有するにはどうすればよいですか?PHP:異なるサーバー上のスレッド間でデータを共有するには?

サーバが接続ごとに別々のスレッドを開いたとします。

データベースを使用せずにデータを共有したいと思います。

User1-->Logged in on server1-> Playing a game with x points(server is getting score by AJAX). 
User2-->Logged in on server2-> Playing same game with y points(server is getting score by AJAX). 

今私は、ゲームの現在のスコア(ポイント)を持つユーザーでログインしているすべてのリストを作りたい:

に例を言うことができます。 データベースを使用せずにどうすればいいですか?

+2

これはなぜデータベースを使用しないのですか?このデータを格納する集中化された場所を持つことは、ここで行うべき論理的なもののようです。 –

+0

ゲームの種類のアプリケーションは本質的に永続的ではありません。一時的な記憶域は私が推測するより意味があります。 –

+0

PHP PDOのオーバーヘッドはリアルタイムアプリにとって非常に高いです。 –

答えて

4

共有のmemcachedサーバーを使用し、そこにデータを保存します。

Memcacheはデータベースと同じように動作しますが、はるかに高速です。これは、ここでデータベースを使用したくない理由です。

+0

このようにMemcachedを使用すると、非永続データベースと見なすことができます。 –

+0

私は全く同意しますが、*データベースなし*の理由はまだ分かりません。 – greut

+0

索引をあまり使わない非永続データベース。実際のDBはスコアで検索する方が良いでしょう、IMO。 – cHao

0

スクリプトとCRONジョブを使用して毎分変数を渡すことができます。

+0

PHPオブジェクトは、リクエストごとに分解されることを除いて。 cronジョブを取得する変数はありません。 – cHao

+0

foreachユーザー:curl_setopt($ ch、CURLOPT_URL、 "http://server2.com/set_points.php?uid={$user['id']}&points={$user['points ']}" ); curl_exec(); set_points.phpは変数をどこかに保存し、ajaxが呼び出す別のスクリプトはそれらを取得します。 – Uboonto

+1

「foreachユーザー」はありません。各セッションは独立しています。何らかの種類のデータストアがなければ、あるセッションは他のセッションが存在することを知らないだろう。 – cHao

関連する問題