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 — Faz cache de uma nova variável no armazenamento de dados
Faz cache de uma variável no armazenamento de dados, somente se já não estiver armazenada.
Nota: Deferentemente de outros mecanismos no PHP, variáveis armazenadas usando apcu_add() irão persistir entre requisições (até que o valor seja removido do cache).
key
       Armazena a variável usando este nome. Uma chave definida por key deve
       ser única no cache, portanto tentar usar apcu_add() para
       armazenar dados com uma chave que já existe não substutuirá os
       dados existentes, e ao invés disso retornará false. Esta é a única
       diferença entre apcu_add() e
       apcu_store().
      
varA variável a ser armazenada
ttl
       Tempo de vida (Time To Live); armazena var no cache por
       ttl segundos. Depois que
       ttl segundos tiverem decorrido, a variável armazenada será
       excluída do cache (na próxima requisição). Se o parâmetro ttl
       não for fornecido (ou se ttl for
       0), o valor persistirá até que seja removido do
       cache manualmente, ou se não existir mais no cache (em uma limpeza,
       reinício, etc.).
      
valuesNomes nas chaves, variáveis no valor.
Retorna TRUE se algo foi efetivamente adicionado ao chace, FALSE caso contrário. A segunda sintaxe retorna um array com chaves de erros.
Exemplo #1 Um exemplo de 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";
?>O exemplo acima produzirá:
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');