パラメータの組み合わせについて:キャッシュを保存(および後で取得)するキーが入力パラメータで構成されているため、2人のユーザーが同じ結果を表示できるかどうかを確認してください。明白な理由からキーが一意である必要があるため、意図した以外の入力変数のセットに対してキャッシュされたデータを表示する必要はありません。
質問は、あなたは鍵が
$cache_key = 'search_external_api_user_53'.implode(',', $_POST);
または
$cache_key = 'search_external_api'.implode(',', $_POST);
十分なものであることする必要がありますか?
脚注:標準セッション($_SESSION
)を共有することはできません。代わりに、ファイルやメモリ(APCやmemcachedなど)にデータを保存することができます。ファイルに保存するのは簡単です:
function save_cache_in_file($cache_key, $content) {
$cache_key = md5($cache_key);
file_put_contents('/tmp/'.$cache_key, serialize($content);
}
function get_cache_from_file($cache_key) {
$cache_key = md5($cache_key);
if(!file_exists('/tmp/'.$cache_key)) {
return false;
}
return unserialize(file_get_contents('/tmp/'.$cache_key));
}
// usage
$cache_key = 'my_search'.implode(',', $_POST);
if(!$data_from_external_service = get_cache_from_file($cache_key)) {
$data_from_external_service = getDataFromElsewhere();
save_cache_in_file($cache_key, $data_from_external_service);
}
// here, $data_from_external_service is always available and cached
正確に何をお探しですか?どのような種類のデータをセッションで保持しますか?あなたが維持したい測定されたパフォーマンスは何ですか?キャッシュはどのようにあなたに利益をもたらすでしょうか?これは建設的な質問ではなく、意見を求めます。あなたが尋ねたい厳しい事実がある場合、おそらくあなたはポイント・ツー・ポイントの回答を得るでしょう。 – Shef
コードを表示してください。 – hakre