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');
(PECL apcu >= 4.0.0)
apcu_add — Cache a new variable in the data store
Caches a variable in the data store, only if it's not already stored.
Note: Unlike many other mechanisms in PHP, variables stored using apcu_add() will persist between requests (until the value is removed from the cache).
key
Store the variable using this name. key
s are
cache-unique, so attempting to use apcu_add() to
store data with a key that already exists will not overwrite the
existing data, and will instead return false
. (This is the only
difference between apcu_add() and
apcu_store().)
var
The variable to store
ttl
Time To Live; store var
in the cache for
ttl
seconds. After the
ttl
has passed, the stored variable will be
expunged from the cache (on the next request). If no ttl
is supplied (or if the ttl
is
0
), the value will persist until it is removed from
the cache manually, or otherwise fails to exist in the cache (clear,
restart, etc.).
values
Names in key, variables in value.
Returns TRUE if something has effectively been added into the cache, FALSE otherwise. Second syntax returns array with error keys.
Example #1 A apcu_add() example
<?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"
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');