1

PHP アプリケーションに memcache (memcacheD ではない) を使用します。混乱はほとんどありません。

memcache のこのラッパークラスを見つけました。

1) connect メソッドと同様に、プルするすべてのサーバーを追加します。これがすべてのリクエストで行われると、ネットワーク遅延の永続的な原因が遅くなることはありませんか?

2) プールに 2 つのサーバーがあり、1 つがオフラインになった場合でも、オフライン サーバーに対して要求が行われますか? memcache からオフライン サーバーを自動的に削除する方法は他にありませんか? そうでない場合、 memcache.allow_failover = 1 設定は何をしますか?

3) どの memcache サーバーによって処理されたキャッシュ要求の数を確認する方法はありますか?

4

1 に答える 1

2

どの memcache API/ラッパーでもかまいません。PHP の CURL メソッドを使用して独自のものを構築することもできます。

1) リクエストごとにすべてのサーバーがプルされ、ネットワーク遅延が発生しますか?

いいえ。アプリケーションがリクエストを行うと、単一のサーバーに接続しようとし、失敗、NOT_FOUND、タイムアウトなどの場合に次のサーバーに「ゴーフィッシュ」します。多少のネットワーク遅延が発生する場合がありますが、データベースとの対話よりもはるかに少なくなりますI/O と待ち時間が気になる場合は、アプリケーション内でシンプルなソリューションを構築できるはずです。

2) リクエストは引き続きオフライン サーバーに対して行われますか?

君による。システムはダウンしていますが、アプリケーションはまだシステムに接続しようとしている可能性があります。PECL の memcache API を使用することにした場合、アプリケーションは、特定のサーバーで memcached が正常に動作しているかどうかを識別できる必要があります。Memcache::checkServerStatus

2.1) memcache.allow_failover は何をしますか?

これはまさにそれが言うことを行います。memcached サーバーAB、およびDがある場合。そして、サーバーAがダウンします。どちらのオプションも USER_NOTICE を発行します。ただしmemcache.allow_failover=1引き続きサーバーBに進み、読み取りと書き込みを許可します。memcache.allow_failover=0すべての memcache I/O が正常に false を返す場合。

ドキュメントをチェックアウトします。

3) Memcached サーバーのレポート

Memcached はstatsコマンドを提供し、PECL の memcache もstatusメソッドを提供します。ただし、それらはメモリ/スラブ統計に関連しています。使用状況の監視レポートが必要な場合は、New Relicをチェックしてください。

于 2012-08-03T21:05:34.033 に答える