decrement will not change TTL of the stored key/value.
(PECL memcached >= 0.1.0)
Memcached::decrement — Décrémente une valeur numérique
$key
,$offset
= 1,$initial_value
= 0,$expiry
= 0
Memcached::decrement() décrémente la valeur numérique
de offset
unités. Si l'élément n'est pas numérique,
une erreur sera émise. Si l'opération tente de décrémenter en dessous de 0,
la nouvelle valeur sera 0. Memcached::decrement()
va définir l'élément à la valeur du paramètre initial_value
si la clé n'existe pas.
key
La clé de l'élément à décrémenter.
offset
La quantité avec laquelle diminuer l'élément.
initial_value
La valeur à utiliser pour définir l'élément s'il n'existe pas.
expiry
Le délai d'expiration dans la définition de l'élément.
Retourne la nouvelle valeur de l'élément en cas de succès ou false
si une erreur survient.
Exemple #1 Exemple avec Memcached::decrement()
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('counter', 5);
$n = $m->decrement('counter');
var_dump($n);
$n = $m->decrement('counter', 10);
var_dump($n);
var_dump($m->get('counter'));
$m->set('counter', 'abc');
$n = $m->increment('counter');
// ^ va échouer en raison du fait que la valeur de l'élément n'est pas un numérique
var_dump($n);
?>
L'exemple ci-dessus va afficher :
int(4) int(0) int(0) bool(false)
Found possible bug :
decrement fails and returns -1 when memcached::OPT_BINARY_PROTOCOL is set to true.
tested on PECL Memcached 2.1.0 and libmemcached version 1.0.8