decrement will not change TTL of the stored key/value.
(PECL memcached >= 0.1.0)
Memcached::decrement — Decrement numeric item's value
$key
,$offset
= 1,$initial_value
= 0,$expiry
= 0
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 або false
в разі помилки.
Приклад #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);
?>
Поданий вище приклад виведе:
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