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');