decrement will not change TTL of the stored key/value.
(PECL memcached >= 0.1.0)
Memcached::decrement — Decrement numeric item's value
$key
, int $offset
= 1
, int $initial_value
= 0
, int $expiry
= 0
) : int|false
Memcached::decrement() decrements a numeric item's value
by the specified offset
. If the item's value is not
numeric, an error will result. If the operation would
decrease the value below 0, the new value will be 0.
Memcached::decrement() will set the item to the
initial_value
parameter if the key doesn't exist.
key
The key of the item to decrement.
offset
The amount by which to decrement the item's value.
initial_value
The value to set the item to if it doesn't currently exist.
expiry
The expiry time to set on the item.
Returns item's new value on success sau false
în cazul eșecului.
Example #1 Memcached::decrement() example
<?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');
// ^ will fail due to item value not being numeric
var_dump($n);
?>
Exemplul de mai sus va afișa:
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