APCu는 APC에서 opcode 캐시 부분만 제거된 모듈로 데이터를 공유 메모리에 저장하여 프로세스 간 데이터를 공유할 수 있는 기능을 제공한다.
멀티 프로세스를 동작하는 php특성상 프로세스가 종료될 때 자원이 해제되어 자원을 공유하기 위해서는 DB형태로 저장해야 된다고 생각하였으나, APCu를 이용하여 프로세스 간 자원 공유를 사용할 수 있다는 것을 알게 되었다.
실제로 작동 시켜본 결과 별게 아닐 수 있지만 이전까지는 경험해본 적 없던 것에 매우 충격을 받았고, 그 과정 및 결과를 공유하고자 한다.
php 오픈소스에서도 사용되는 것을 보았는데 파일 자체를 캐시에서 읽어오고 파일 자체를 저장하는 데 사용되었다.
opcache는 파일을 읽고 opcode로 컴파일하는 비용이 절약되기 때문에 opcache가 더 효율적으로 예상된다.
1. 모듈 설치
설치는 아래의 링크를 참조하였다.
모듈 설치 그리고 ini파일 설정을 해야한다.
https://guides.wp-bullet.com/install-apcu-object-cache-for-php7-for-wordpress-ubuntu-16-04/
2. 사용
방법은 매우 간단하다.
<?php
apcu_store('data', $data); // 데이터를 저장하고
?>
// 다른 프로세스
<?php
$data = apcu_fetch('data'); // 데이터를 가져와서 사용
?>
캐시 데이터 저장(추가), 조회, 삭제, 메모리 정보 조회 등 기능들이 있고 아래 메뉴얼에서 확인 가능하다.
https://www.php.net/manual/en/ref.apcu.php
3. 소감
새롭고 신기하다. 어떻게 활용해야 할지 고민이 된다.
잘 사용하면 좋은 성능을 낼 수 있을 것이라 기대하지만, 반대의 경우엔 이유 없이 메모리 문제가 생기는 일이 발생할 것 같다.
이상.
'공부 > PHP' 카테고리의 다른 글
PHP 8.0 출시! 새로운 기능 알아보기 (2) | 2020.11.29 |
---|---|
내가 만든 PHP composer package를 packgist.org 에 등록하기 (0) | 2020.07.27 |
Alternative PHP Cache (APC) (0) | 2020.07.10 |
PHP에서 Closure로 Lazy loading 구현하기 (0) | 2020.05.29 |
php 파일(경로,데이터)로 mime_type 찾기 (0) | 2018.06.19 |