这可用于锁定/解锁
<?php
do {} while (!apcu_add('lock_name', 'foo', 10));
// 此部分受保护,防止多次/多线程运行
apcu_delete('lock_name');
(PECL apcu >= 4.0.0)
apcu_add — 在数据存储区中缓存一个新变量
仅当变量尚未存储时,才将其缓存到数据存储区中。
注意: 与 PHP 中许多其他机制不同,使用 apcu_add() 存储的变量将在请求之间持续存在(直到该值从缓存中移除)。
key
使用此名称存储变量。 key
在缓存中是唯一的,因此尝试使用 apcu_add() 存储具有已存在 key 的数据不会覆盖现有数据,而是返回 false
。(这是 apcu_add() 和 apcu_store() 之间的唯一区别。)
var
要存储的变量
ttl
生存时间;在缓存中存储 var
ttl
秒。超过 ttl
后,存储的变量将从缓存中清除(在下一个请求中)。如果没有提供 ttl
(或 ttl
为 0
),则该值将持续存在,直到手动将其从缓存中移除,或者在缓存中不存在(清除、重启等)。
values
键名在 key 中,变量在 value 中。
如果已有效地将某些内容添加到缓存中,则返回 TRUE,否则返回 FALSE。第二个语法返回包含错误键的数组。
示例 #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"
这可用于锁定/解锁
<?php
do {} while (!apcu_add('lock_name', 'foo', 10));
// 此部分受保护,防止多次/多线程运行
apcu_delete('lock_name');