apcu_add
(PECL apcu >= 4.0.0)
apcu_add — 缓存一个新变量到存储中
说明
将一个从未被缓存过的变量添加到到存储中。
注意: 与 PHP 中常见的变量生命周期不同的是,通过 apcu_add() 存储的变量可以在多个 request 之间共享(直到该变量从 cache 中被删除)。
参数
key
-
使用此名称存储变量。
key
必须是唯一的,因此如果用 apcu_add() 存储变量时指定的 key 已经存在, 就会直接返回false
,不会覆写已有的数据。(这也是 apcu_add() 和 apcu_store() 之间唯一的区别。) var
-
被存储的变量
ttl
-
变量生存时间(Time To Live);被存储的
var
经过ttl
秒后,会从存储中被删除(下一次请求时)。如果没提供ttl
(或ttl
为0
),该变量会一直存在直到手动删除它,或者其他原因导致该变量从缓存中消失(清除,重启等等。)。 values
-
数组索引作为 key,数组值作为被存储的 var。
返回值
变量被成功添加时返回 TRUE,否则返回 FALSE。第二种语法返回包含添加失败的 key 的数组。
示例
示例 #1 apcu_add() 示例
<?php
$bar = 'BAR';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
?>
以上示例会输出:
string(3) "BAR" string(3) "BAR"
参见
- apcu_store() - 缓存一个变量到存储中
- apcu_fetch() - Fetch a stored variable from the cache
- apcu_delete() - Removes a stored variable from the cache
+添加备注
用户贡献的备注 1 note
sritter at satoya dot cz ¶
3 years ago
This is usable for locking/unlocking
<?php
do {} while (!apcu_add('lock_name', 'foo', 10));
// this part is protected against multiple/multithread run
apcu_delete('lock_name');