이 글에서는 PHP: APCu 확장과 함께 제공되는 캐싱 시스템을 자세히 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.
모든 분들이 일상적인 캐싱을 위해, 또는 트래픽을 방지하기 위해, 또는 일반적으로 사용되는 일부 핫 데이터를 저장하기 위해 memcached 또는 redis와 같은 캐싱 시스템을 사용해 보셨을 거라 생각합니다. 실제로 소규모 프로젝트에서는 PHP를 사용하기도 했습니다. 일상적인 일반 규모 사이트의 개발을 완벽하게 처리할 수 있는 간단한 캐싱 시스템을 준비했습니다. 이 확장 세트는 APCu 확장입니다.
APCu 확장은 더 이상 유지 관리되지 않는 APC 확장의 업그레이드입니다. 두 확장 세트 모두 실제로 opcode 캐싱을 기반으로 합니다. 즉, PHP 자체 opcode로 구현된 캐싱 기능입니다.
APCu의 설치는 일반적인 PHP 확장과 동일합니다. 가장 중요한 것은 이 확장이 매우 작다는 것입니다. 다운로드와 설치 모두 몇 초 안에 완료될 수 있습니다. 따라서 소규모 프로젝트에 매우 편리하게 적용할 수 있으며, PHP에서 기본적으로 지원되므로 포트 등의 추가 구성이 필요하지 않습니다.
캐시 시스템이 일반적으로 가지고 있는 추가, 삭제, 쿼리, 자동 증가 및 기타 기능은 APCu 확장에 해당 구현이 있습니다.
apcu_add — 새 캐시 생성
apcu_cache_info — APCu의 모든 캐시 정보 보기
apcu_cas — 캐시된 값을 새 값으로 업데이트
apcu_clear_cache — 모든 캐시 지우기
apcu_dec - 캐시 값 감소
APCU_DELETE - 캐시 된 컨텐츠 삭제
APCU_ENABLE- 현재 환경에서 APCU 캐시 활성화 여부에 관계 캐시가 존재합니다
apcu_fetch — 캐시 쿼리
apcu_inc — 캐시 값 자동 증가
apcu_sma_info — 캐시된 공유 메모리 정보 쿼리
apcu_store — 캐시 저장
apcu_add("int", 1); apcu_add("string", "I'm String"); apcu_add("arr", [1,2,3]); class A{ private $apc = 1; function test(){ echo "s"; } } apcu_add("obj", new A); var_dump(apcu_fetch("int")); var_dump(apcu_fetch("string")); var_dump(apcu_fetch("arr")); var_dump(apcu_fetch("obj"));
일반적인 사용은 비교적 간단합니다. 우리가 추가하는 모든 유형의 데이터는 정상적으로 캐시에 저장될 수 있습니다. 그러나 객체를 직렬화하지 않고 APCu 캐시에 직접 저장하거나 JSON을 문자열로 저장할 수 있다는 점에 유의해야 합니다.
apcu_cas("int", 1, 2); var_dump(apcu_fetch("int")); // Warning apcu_cas() expects parameter 2 to be int apcu_cas("string", "I'm String", "I'm New String");
apcu_entry("entry", function($key){ return "This is " . $key; }); var_dump(apcu_fetch("entry"));
apcu_entry(string $key , callable $generator [, int $ttl = 0 ]) 이 함수의 기능은 $generator 익명 함수를 실행하고 $key 캐시가 존재하지 않는 경우 $key를 키 값으로 사용하는 것입니다. 이를 전달한 다음 이 캐시의 값으로 콘텐츠를 생성하거나 반환합니다.
var_dump(apcu_cache_info());
마지막으로 현재 시스템의 모든 APCu 캐시 정보를 보려면 apcu_cache_info() 함수를 직접 사용할 수 있습니다.
요약캐시에 데이터가 많은 경우 루프 쿼리 및 캐시 정보 관련 통계를 쉽게 수행할 수 있도록 APCUIterator 반복자를 제공합니다. 간단히 말해서, 이 시스템은 매우 편리한 소규모 캐싱 시스템이며 일상적인 개발에서 몇 가지 작은 기능을 사용해 볼 수 있습니다.
테스트 코드:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202004/source/%E6%88%91%E4%BB%AC%E4%B9%9F%E6%9C%89%E8%87%AA%E5%B8%A6%E7%9A%84%E7%BC%93%E5%AD%98%E7%B3%BB%E7%BB%9F%EF%BC%9APHP%E7%9A%84APCu%E6%89%A9%E5%B1%95.php
위 내용은 PHP와 함께 제공되는 캐싱 시스템에 대한 자세한 소개: APCu 확장의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!