PHP 자체에서 프로세스간의 데이터를 공유하는 방법(DB 사용안함)
특정 데이터에 대해서 세션이 변경되거나 다시 로그인 하거나 여러가지 형태의 데이터를 유지하고 관리 하려면 파일로 저장하거나 대량이면 DB를 사용합니다. 여기서 많지 않은 데이터를 서로 공유하면서 관리를 해야 되는 그런 경우가 있을 수 있는데 이때 사용하면 좋을 것 같아 올려봅니다.
예를 들면)
부정사용자나, 또는 특정 패턴을 가진 IP를 차단하거나 하는 등의 정보를 가지고 있다가 처리 하는 것입니다.
PHP에서 프로세스간의 데이터를 공유하는 방법으로 파일이나 데이터베이스를 사용하는 방법은 아닙니다.
● 설치
yum -y install php81-php-pecl-apcu.x86_64
● 간단한 사용방법
# 1) 저장
$data = 'test1';
apcu_store('data', $data);
# 2) 가져오기
$data = apcu_fetch('data');
echo date('Y-m-d H:i:s') . ' ' . $data . PHP_EOL;
● 다중 사이트
- 한대의 서버에 가상호스트로 여러개의 사이트를 서비스하고 있는 경우는 키값에 사이트 구분 하는것을 넣으면 됩니다.
● 다중 서버
- 서버가 여러대 일때 이 방법을 사용 가능 할까요? 메모리기반의 레디스를 확인해 보세요.
● 참고자료
https://www.php.net/manual/en/book.apcu.php
https://www.php.net/manual/en/ref.apcu.php