apcu_entry
(PECL apcu >= 5.1.0)
apcu_entry — 캐시 항목을 원자적으로 가져오거나 생성합니다.
설명
apcu_entry(string $key
, callable $generator
, int $ttl
= 0): mixed
원자적으로 캐시에서 key
를 찾으려고 시도합니다. 찾을 수 없으면 generator
가 호출되고 key
를 유일한 인수로 전달합니다. 그런 다음 호출의 반환 값은 선택적으로 지정된 ttl
과 함께 캐시되고 반환됩니다.
참고: 제어가 apcu_entry()에 들어가면 캐시에 대한 잠금이 독점적으로 획득되고 제어가 apcu_entry()를 떠날 때 해제됩니다. 사실상 이것은 generator
의 본체를 임계 섹션으로 바꾸어 두 프로세스가 동일한 코드 경로를 동시에 실행하는 것을 허용하지 않습니다. 또한 다른 APCu 함수는 동일한 잠금을 획득하므로 동시 실행을 금지합니다.
경고: generator
가 안전하게 호출할 수 있는 유일한 APCu 함수는 apcu_entry()입니다.
매개변수
key
- 캐시 항목의 ID
generator
key
를 유일한 인수로 받아들이고 캐시에 값을 반환하는 콜러블입니다.ttl
- TTL(Time To Live) ttl 초 동안 캐시에
var
를 저장합니다.ttl
이 지나면 저장된 변수가 캐시에서 삭제됩니다(다음 요청 시).ttl
이 제공되지 않은 경우(또는ttl
이0
인 경우) 값은 캐시에서 수동으로 제거될 때까지 지속되거나 그렇지 않으면 캐시에 존재하지 않을 때까지 유지됩니다(지우기, 다시 시작 등).
반환 값
캐시된 값을 반환합니다.
Examples
예제 #1 apcu_entry() 예제
<?php
$config = apcu_entry("config", function($key) {
return [
"fruit" => apcu_entry("config.fruit", function($key){
return [
"apples",
"pears"
];
}),
"people" => apcu_entry("config.people", function($key){
return [
"bob",
"joe",
"niki"
];
})
];
});
var_dump($config);
?>
위의 예는 다음을 출력합니다.
array(2) { ["fruit"]=> array(2) { [0]=> string(6) "apples" [1]=> string(5) "pears" } ["people"]=> array(3) { [0]=> string(3) "bob" [1]=> string(3) "joe" [2]=> string(4) "niki" } }
기타
- apcu_store() - 데이터 저장소에 변수 캐시
- apcu_fetch() - 캐시에서 저장된 변수를 가져옵니다.
- apcu_delete() - 캐시에서 저장된 변수를 제거합니다.