APCU_STORE関数は、データをAPCUキャッシュに保存するために使用されます。その基本的な使用法は次のとおりです。
apcu_store('key', 'value');
ここで、 「キー」はキャッシュ項目のキーであり、 「値」はキャッシュするデータです。この関数は、データをAPCUキャッシュに保存して、将来迅速にアクセスできるようにします。 APCU_STOREは、キーが既に存在している場合でも、元の値を直接上書きする必須のストレージ操作です。
APCU_STOREは、TTL(サバイバル時間)などの追加のパラメーターを受け入れることもできます。例えば:
apcu_store('key', 'value', 3600); // データストレージ1時間
これにより、データが保存され、有効期限を3600秒(つまり1時間)に設定します。ただし、この関数は、キーのデータがすでにキャッシュにあるかどうかを決定するものではなく、既存のデータを直接保存または更新します。
APCU_STOREと比較して、 APCU_ENTRY関数はよりインテリジェントです。その目的は、キャッシュにキーがすでに存在するかどうかを確認することです。キーがキャッシュに存在しない場合、新しい値が計算され、保存されます。キーが既に存在する場合、キャッシュの値は再計算せずに直接返されます。
APCU_Entryの基本的な使用法は次のとおりです。
$value = apcu_entry('key', function() {
// データを計算または取得します
return 'computed value';
});
この例では、 APCU_ENTRYは最初に「キー」が存在するかどうかを確認します。存在する場合、キャッシュ内の値を直接返します。存在しない場合は、コールバック関数を実行し、値を計算し、結果をAPCUキャッシュに保存します。
この方法は、特に計算プロセスが複雑または時間がかかる場合、繰り返し計算を回避します。プログラムの効率を効果的に改善できます。
APCU_STOREは、データをキャッシュに直接保存し、元のデータを上書きします。
APCU_Entryは、最初にキャッシュにデータがあるかどうかを確認します。そうでない場合、データはコールバック関数を介して計算され、キャッシュに保存されます。
APCU_STOREは、キャッシュされたデータを直接保存または更新する必要があるシナリオに適しています。
APCU_Entryは、キャッシュが存在しない場合にのみデータが計算され、繰り返し計算を回避するシナリオに適しています。
APCU_Entryは、特に複雑な計算またはクエリが必要な場合、繰り返し計算を効果的に回避できます。不必要な負荷を減らすことができます。
APCU_STOREはシンプルで直接的ですが、キャッシュが存在しないときにデータを再計算する必要がある場合、パフォーマンスの問題を引き起こす可能性があります。
キャッシュの使用効果を最大化するために、 APCU_ENTRYとAPCU_STOREを組み合わせて、効率的なデータキャッシュ管理を実現できます。
データベースから照会する必要があるデータがあり、クエリの結果をキャッシュする必要があるとします。キャッシュが存在しない場合は、結果をクエリしてキャッシュします。キャッシュが既に存在する場合は、キャッシュを直接使用します。
$key = 'user_data_' . $userId;
// 使用apcu_entryキャッシュされたデータを取得してみてください,存在しない場合は、
$data = apcu_entry($key, function() use ($userId) {
// データベースクエリ操作をシミュレートします
return get_user_data_from_db($userId);
});
// 場合によっては,利用可能apcu_store明示的なキャッシュの更新を実行します
if ($data['updated']) {
apcu_store($key, $data);
}
この例では、 APCU_Entryは、キャッシュに指定されたキーが既にあるかどうかをチェックします。そうでない場合は、データベースクエリを実行し、結果をキャッシュします。 APCU_STOREを使用すると、データを更新する必要がある場合、キャッシュを明示的に上書きすることができます。