複数の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があり、単純なファイルベースのキャッシュを作成していることも知っていますが、他の人から同様の状況で何を使用したかを聞きたいと思います。