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