0

私は小さなマルチプレイヤー ゲームを作成しており、バックエンドとして php を使用しています。基本的に、オブジェクトの多くの位置を設定および取得する必要があります。この場合、1 つのオブジェクトは X/Y 位置を持つ 1 人のプレーヤーです。

リアルタイムで行う必要はありませんが、ターン制なので 5 ~ 20 秒ごとに行うとよいでしょう。ポジションは時々クライアントによって再設定されるので、データが失われてもかまいません。

memcached または redis でこれを行うことを考えていました。基本的に各プレイヤーは「キー」であり、このキーには関連する情報を含むオブジェクトが含まれますが、最も重要なのは X/Y 位置です。

おそらく私はこれを間違った方法で行っていますが、このアプローチは非常に簡単に実行できるように思えますが、これらのソリューションのいずれについても多くの経験がないため、うまく機能するかどうかはわかりません.

ここではおそらく 10 人のプレイヤーについて話していることを付け加えておきます。したがって、x/y 位置を持つ 10 個のオブジェクトを時々更新する必要があります。

このようにすることはできますか? memcached/redis よりも優れたソリューションはありますか? そうでない場合、これら2つのどちらがパフォーマンス的に優れているでしょうか? 私が理解していることから、それはほとんど同じことであり、redis がいくつかの機能を提供するだけです (これは必ずしも必要ではないかもしれません)。

ああ、はい、私はAPCとphpを明らかに使用しています。ありがとう!

4

2 に答える 2

0

Redis はリソース、特に 32 ビット バージョンで最も安価です。たとえば、2 GB 未満のキャッシュ メモリを使用する場合は、サーバーが 64 ビットであっても 23 ビットの Redis を実行してください。

于 2011-08-12T07:18:28.333 に答える
0

データ モデル全体で 10 個のオブジェクトしかないので、それらすべてをシリアル化された配列として 1 つのキーの下に格納します。シリアル化時間は memcached 呼び出しに比べて見劣りするため、読み取りと書き込みの数を 1 つに最小限に抑えることもできます。

redis のオンライン デモをチェックしたところ、とてもきれいに見えます。リンクをありがとう。どちらが優れているとは言えませんが、PHP の memcached は実績があり成熟しているため、間違いはありません。

于 2011-02-16T03:29:56.483 に答える