현재 위치: > 최신 기사 목록> CLI 환경에서 캐싱에 apcu_entry를 사용하는 방법

CLI 환경에서 캐싱에 apcu_entry를 사용하는 방법

gitbox 2025-05-18

PHP 개발에서 APCU 는 매우 효율적인 사용자 데이터 캐시 확장으로 스크립트 성능을 크게 향상시킬 수 있습니다. 특히 반복 계산이 자주 호출되는 시나리오에서. APCU는 주로 웹 환경에서 사용되지만 CLI (Command Line) 모드의 캐싱에도 사용될 수 있으며 일부 구성 및 예방 조치 만 필요합니다. 이 기사는 APCU_ENTRY () 기능을 사용하여 CLI 환경에서 효율적인 캐싱을 달성하고 사용의 예를 제공하는 방법을 소개합니다.

apcu_entry () 란 무엇입니까?

APCU_ENTRY () 는 캐시 작업을 단순화하기 위해 APCU 확장자에서 제공되는 편의 기능입니다. 키 이름과 콜백 함수를 인수로 받아들입니다. 캐시에 해당 키가 있으면 캐시 된 값을 직접 반환합니다. 그렇지 않은 경우 콜백 함수가 실행되어 값을 얻고 결과를 캐시합니다.

구문은 다음과 같습니다.

 mixed apcu_entry(string $key, callable $callback, int $ttl = 0)
  • $ 키 : 캐시 키 이름.

  • $ 콜백 : 캐시 된 컨텐츠를 생성하는 콜백 함수.

  • $ ttl : 캐시 된 생존 시간 (단위 : 초), 선택 사항.

CLI 모드에서 APCU 지원을 켜십시오

기본적으로 APCU는 CLI 모드에서 꺼집니다. 명령 줄에서 apcu_entry ()를 사용하려면 구성 파일을 수정하거나 명령 줄에서 명시 적으로 활성화해야합니다.

 php -d apc.enable_cli=1 your_script.php

또는 php.ini 수정 :

 apc.enable_cli=1

예 : 시간이 많이 걸리는 작업의 캐시 결과

매우 시간이 많이 걸리는 데이터베이스 쿼리 또는 API 요청이 있다고 가정하고 중복 실행을 피하기 위해 결과를 캐시 할 수 있습니다.

 <?php
$key = 'api_data';

$data = apcu_entry($key, function () {
    // 시뮬레이션 시간 소모 작업,예를 들어 전화하십시오 https://gitbox.net/api/data
    sleep(5); // 작업에 시간이 걸린다고 가정합니다5두번째
    return file_get_contents('https://gitbox.net/api/data');
}, 60); // 은닉처60두번째

echo $data . PHP_EOL;
?>

첫 번째 실행 중에 프로그램은 원격 데이터를 얻기 위해 5 초 대기합니다. 60 초를 초과하지 않는 한 스크립트를 다시 실행하면 결과가 캐시에서 직접 읽히고 거의 즉시 응답됩니다.

주목해야 할 것

  1. 생존 시간 (TTL) : APCU_ENTRY ()는 TTL 설정을 지원합니다. 설정하지 않으면 기본 캐시가 만료되지 않으며 수동으로 지우겠습니다.

  2. 동시 액세스 : APCU는 웹 환경, CLI 스크립트에서는 스레드 안전이지만 동시 액세스가있는 경우 레이스 조건을 피하기 위해 잠금 장치 (예 : 파일 잠금)를 추가하는 것이 좋습니다.

  3. 지속성 문제 : APCU 캐시는 메모리에 있습니다. CLI가 실행 된 직후 캐시는 사라지지 않습니다. PHP 프로세스가 다시 시작되지 않는 한 여전히 유효합니다. 그러나 웹 모드와 다르며 실행 환경에 따라 다릅니다.

요약

APCU_ENTRY ()를 사용하면 명령 줄 스크립트에서 캐싱 메커니즘을 매우 편리하게 구현하여 반복 컴퓨팅 또는 원격 통화의 성능 소비를 크게 줄일 수 있습니다. CLI 모드 APCU 지원이 활성화되고 적절한 TTL 및 데이터 키 이름 관리를 통해 효율적인 로컬 캐시 시스템을 쉽게 구축 할 수 있습니다. 이것은 자주 실행이 필요한 CLI 도구 또는 타이밍 작업을위한 매우 가치있는 최적화 방법입니다.