apcu_entry
apcu_entry
(PECL apcu >= 5.1.0)
apcu_entry - 以原子方式获取或生成缓存条目
描述
mixed apcu_entry ( string $key , callable $generator [, int $ttl = 0 ] )
key
试图在缓存中寻找原子,如果找不到,则作为唯一参数generator
传递key
。然后调用的返回值与可选的指定值一起缓存ttl
,并返回。
注意
:当控制进入apcu_entry()时
,缓存的锁被独占获取,当控制离开apcu_entry()时
它被释放:实际上,这会将主体generator
转换为临界区,不允许两个进程同时执行相同的代码路径。此外,它禁止同时执行任何其他 APCu 功能,因为它们将获得相同的锁定。
警告
唯一可以安全调用的 APCu 函数generator
是apcu_entry()
。
参数
key
缓存条目的标识
generator
一个可调用的接受key
作为唯一参数并将值返回缓存。
ttl
生存时间; var
在缓存中存储ttl
几秒钟。在ttl
通过之后,存储的变量将从缓存中删除(在下一个请求中)。如果ttl
提供了 no (或者如果该ttl
值为0
),则该值将一直保持到手动将其从缓存中移除,否则将无法存在于缓存中(清除,重新启动等)。
返回值
返回缓存的值
例子
Example #1 An apcu
_
entry() example
<?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"
}
}