현재 위치: > 최신 기사 목록> APCU_ENTRY를 사용하여 API가 요청한 리턴 데이터를 캐시하는 방법

APCU_ENTRY를 사용하여 API가 요청한 리턴 데이터를 캐시하는 방법

gitbox 2025-05-27

APCU_ENTRY 기능은 APCU 확장자가 제공하는 캐시 작동 방법입니다. 그 기능은 값이 존재하지 않을 때 캐시에 값을 저장하고 콜백 함수를 실행하는 것입니다. 이 콜백 기능은 일반적으로 API 데이터를 얻거나 복잡한 계산을 수행 할 수있는 장소입니다.

 mixed apcu_entry(string $key, callable $callback, int $ttl = 0)
  • $ 키 : 캐시 된 키 값은 일반적으로 캐시 된 데이터를 식별하는 데 사용됩니다.

  • $ 콜백 : 콜백 함수. 캐시에 키가 없으면 데이터를 얻기 위해 콜백 함수가 실행됩니다.

  • $ TTL : 캐시의 유효 기간은 초입니다. 캐시 된 데이터는 만료 된 후 삭제됩니다.

왜 apcu_entry를 사용합니까?

APCU_ENTRY를 사용하는 주요 목적은 데이터베이스 또는 원격 API 요청 수를 줄이고 시스템의 응답 속도를 향상시키는 것입니다. 데이터가 캐시되면 다음 동일한 요청은 원격 서비스에 다시 계산하거나 액세스하지 않고 캐시에서 직접 읽습니다. 이는 서버로드를 크게 줄일뿐만 아니라 사용자 경험을 효과적으로 향상시킵니다.

예를 들어, API 인터페이스를 호출 할 때 API의 반환 된 데이터는 비교적 안정적 일 수 있으며 자주 변경되지 않습니다. 이러한 반환 데이터를 캐싱하면 사용자 요청이 요청 될 때마다 동일한 API 요청을 피할 수 있으므로 응답 속도를 높일 수 있습니다.

APCU_ENTRY CACHE API를 사용하여 반환 데이터를 요청하는 방법은 무엇입니까?

다음은 APCU_ENTRY를 사용하여 요청한 반환 된 데이터를 캐시하는 방법을 보여주는 간단한 예입니다.

1. APCU 구성

먼저 PHP 환경에 APCU 확장 기능이 설치되어 활성화되어 있는지 확인하십시오. 설치하지 않은 경우 다음 명령을 통해 설치할 수 있습니다.

 sudo apt-get install php-apcu

설치 후 PHP 서비스를 다시 시작하십시오.

 sudo service php-fpm restart

2. 캐시 로직을 쓰십시오

사용자 데이터를 요청하여 사용자 데이터를 얻는 API 인터페이스가 있다고 가정합니다. APCU_ENTRY를 통해 반환 된 데이터를 캐시 할 수 있습니다.

 <?php
// 묻다 API 사용자 데이터를 얻습니다
function fetch_user_data($user_id) {
    // 통과하다 URL 데이터를 얻으십시오,여기 데이터가 있습니다 JSON 체재
    $url = "https://gitbox.net/api/user/{$user_id}";
    $response = file_get_contents($url);
    return json_decode($response, true);
}

// 사용 apcu_entry 은닉처 API 반환 데이터
function get_user_data($user_id) {
    // 은닉처的键值
    $cache_key = "user_data_{$user_id}";
    
    // 尝试从은닉처中데이터를 얻으십시오
    return apcu_entry($cache_key, function() use ($user_id) {
        // 如果은닉처中没有数据,그런 다음 API 데이터를 얻으십시오
        return fetch_user_data($user_id);
    }, 3600); // 은닉처 1 시간
}

// 샘플 통화
$user_data = get_user_data(123);
print_r($user_data);
?>

위의 코드에서는 원격 API에서 사용자 데이터를 얻기 위해 Fetch_user_Data 함수를 정의합니다. 그런 다음 데이터가 apcu_entry 함수를 통해 캐시되고 캐시 된 키 값은 user_data _ {$ user_id} 이며 캐시 된 유효 기간은 1 시간입니다. 데이터가 캐시에 있지 않으면 APCU_ENTRY는 콜백 함수를 실행하고 API에서 데이터를 얻고 캐시합니다.

3. 캐시 된 데이터 구문 분석

해당 데이터가 캐시에 이미 존재하는 경우 APCU_ENTRY는 콜백 기능을 다시 실행하지 않고 캐시 된 데이터를 직접 반환합니다. 캐시가 만료되면 다음 요청은 콜백 함수를 다시 데려 가서 최신 데이터를 가져오고 다시 캐시합니다.

최적화 제안

  1. 캐싱 정책 : 해당 캐시 만료 날짜를 선택하십시오. 실제 애플리케이션에서는 다른 데이터마다 업데이트 주파수가 다를 수 있으며 실제 조건에 따라 다른 캐시 유효성 기간을 설정할 수 있습니다.

  2. 캐시 정리 : 데이터가 변경되면 캐시를 청소해야합니다. APCU_DELETE를 사용하여 캐시를 삭제할 수 있습니다.

 apcu_delete($cache_key);
  1. 메모리 관리 : APCU 캐시 데이터는 서버의 메모리에 저장되므로 캐시를 사용할 때 메모리 사용법을 고려해야합니다. 캐시 된 데이터의 양이 너무 커지면 메모리가 충분하지 않아 시스템 성능에 영향을 줄 수 있습니다.