1

複数のSQLクエリを実行して生成されたxmlを返し、結果セットを単一のxml文字列/ドキュメントにアセンブルするphp/mysqlベースのAPIを開発しています。

たとえば、このAPIのさまざまなフレーバーを要求する複数のクライアントがあります。

http://domain.com/api/ / playerbio / 12345は、個人情報、現在の年初来の統計、キャリアの統計、怪我のリストなどのさまざまなセクションを含むプレーヤーの経歴を返します。

このタイプのAPIリクエストは、多くのクライアントによって1時間ごとに、さまざまなリーグ、チーム、名簿、プレーヤーなどに対して行われます。

ソースデータベースの統計家と編集者は、このコンテンツを1日中継続的に管理しています。

私は現在、このapiをエディターのソースデータベースから直接読み取っており、生成されたxmlドキュメントが最新であることをほぼ保証しています。

平均的なxmlドキュメントではアセンブルするすべてのデータを収集するために4〜7回のクエリが必要になるため、ソースデータベースがクエリされる回数を減らすためにキャッシュ戦略を実装することを検討しています。

特に、このAPIが1日に300〜500k回呼び出され、xmlドキュメントのサイズが20k〜100kの範囲であることを考慮して、ここで戦略とテクノロジーを探しています。

APC、memcache、memcached、Redis、MongoDBがあり、単純なファイルベースのキャッシュを作成していることも知っていますが、他の人から同様の状況で何を使用したかを聞きたいと思います。

4

2 に答える 2

0

超高速で永続的なデータが必要な場合は、Redis が最適です。それ以外の場合は、MemcacheD が永続性を差し引いた代替手段になりますが、アプリケーションが単一のサーバーで実行される場合は、APC が理想的です。

于 2012-11-15T07:53:01.863 に答える
0

私は memcached の大ファンです。高速で使いやすく、統合用の標準ライブラリがあります。

memcached は非常に高速で、大量のデータを提供できますが、永続的ではなく、真のキャッシュであるため、データをロードする方法があることを期待してください。古いキーの自動トリミングは貴重です。

于 2012-11-15T03:17:07.537 に答える