0

PHP の APC を使用して、URI 経由で php スクリプトに渡されるデータをキャッシュできるかどうか疑問に思っていました。

可能であれば、APC を使用することが私の Web サイトに最適なキャッシュ ソリューションであるかどうかを知りたいです。

私のウェブサイトは基本的に、YouTube や Echones などのインターネットからさまざまな API を調べて、ミュージシャンに関するデータを取得します。ユーザーが私の Web サイトでアーティストをクリックした瞬間に、アーティストのデータがさまざまな API から新たに読み込まれます。ウェブサイトにはアーティストの長いリストがありますが、それらすべてをキャッシュするのは良い考えですか? 現在、ユーザーが新しいアーティストをクリックするたびに常に API を調べているため、私のサイトは非常に低速です。

4

1 に答える 1

0

絶対的なリアルタイムとさまざまなデータ プロバイダーとの同期を必要としない限り、キャッシュは通常、実際にサイトを高速化するための非常に良いアイデアです。

APC はオペコード キャッシングを行い、データ キャッシングにも使用できるため、プロバイダーからの API 応答とデータをキャッシングするのに適しています (APC の API はこちらhttp://www.php.net/manual/en/ref.apcを参照してください)。 .php )

ただし、APC は Web サーバーごとに実行されるため、複数の Web サーバーを使用する HA セットアップがあり、キャッシュに関してすべての Web サーバーを同期する必要がある場合は、集中キャッシュ用の memcache/redis を検討することをお勧めします。代わりは。

クロスサーバー同期が必要かどうかは完全にあなたの決定であり、アプリの性質に依存することに注意してください。これには正解も不正解もありません。参考までに: 同期キャッシュには、APC にはないネットワーク io コストが発生します。

いずれにせよ、APC または memcache/redis を使用するかどうか、URI パターンごとのキャッシング、またはクエリ文字列パラメーターからのキャッシングはまったく問題ありません。これらのキャッシュはキー/値に基づいて機能するため、キーの命名規則システムを考案して、関連するデータを保存するのはあなた次第です。例えば:

$key = sprintf("%s/%s/%s/%s", $provider_name, $api_endpoint, $param1, $param2);
apc_add($key, $the_data, 300); // cache for 5mns
于 2013-02-17T12:31:33.067 に答える