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를 사용하면 데이터를 업데이트 해야하는 경우 캐시를 명시 적으로 덮어 쓸 수 있습니다.