さて、Memcache についていくつか奇妙な質問があります。私のキャッシング手法の基本的な考え方は、PHP スクリプトが要求するデータを Memcached サーバーに保存することです。私と私のチームが直面した主な問題は、大量のデータを保存すると、Memcached のアイテム データ サイズの 1 MB 制限を超える場合があることです。このアプローチをさらに説明するために、次のことを想像してみてください。特定のオブジェクトを構成するための大量のデータがあり、そのデータには多数のテキストと数字が含まれています。そして、これらのオブジェクトのほぼ 200 項目を保存する必要があるため、最初に採用したアプローチは、200 程度のオブジェクト全体を Memcached の 1 つの大きな項目にキャッシュすることです。そのアイテムは 1Mb の制限を超える可能性があるため、新しいアプローチを採用できると考えました。私たちが行った新しいアプローチは、オブジェクトを構成するデータをより小さなビルディング ブロックに分解することです (そして、
質問は次のとおりです。より大きなデータを取得すると、GET 速度は変わりますか? それとも、オブジェクトを構成する複数のビルディング ブロックを取得するためにマルチ GET を使用するため、Memcached サーバーが並行して処理するリクエストの量の制限が 2 番目のアプローチの妨げになるのでしょうか?
これが奇妙な質問であることは承知していますが、使用するビルディング ブロックのサイズと、必要に応じてデータを追加するかどうかを決定するため、私たちが使用する新しいアプローチにとって重要です。
編集 1: 2 番目のアプローチで MULTIGET 関数を使用できるので、Memecached に接続して、取得するデータの各ビットに対する応答を待つ必要がないことに注意してください。そのため、並列リクエストを使用して複数のキーを取得します。