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().
var
A 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.).
values
Nomes 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');