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 — Добавить переменную в кеш
Добавляет переменную в кеш, если её там ещё нет.
Замечание: В отличие от многих других механизмов PHP, переменные, сохранённые apcu_add(), сохраняются между запросами, пока их не удалят из кеша.
key
Имя, под которым будет сохранена переменная. Значение key
является уникальным для кеша, так что попытка использовать
apcu_add() для сохранения переменной с ключом, который уже
существует, не перезапишет запись, а вернёт false
. (Это единственное различие между
apcu_add() и apcu_store().)
var
Переменная для сохранения
ttl
Время жизни; переменная var
будет храниться в течение
ttl
секунд. Как только ttl
секунд
пройдут, переменная будет удалена из кеша (при следующем запросе). Если параметр
ttl
не задан (или ttl
задан как
0
), значение будет храниться пока не будет удалено явно, либо
по технической причине (очистка кеша, перезапуск и т.д.)
values
Имена в ключах, переменные в значениях.
Возвращает 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"
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');