decrement will not change TTL of the stored key/value.
(PECL memcached >= 0.1.0)
Memcached::decrement — Уменьшает числовое значение записи
$key
,$offset
= 1,$initial_value
= 0,$expiry
= 0
Memcached::decrement() уменьшает числовое значение записи на величину, указанную
в offset
. Если значение записи не является числовым, то будет возвращена ошибка.
Если функция уменьшит значение записи меньше нуля, будет установлено нулевое значение.
Memcached::decrement() установит записи значение параметра
initial_value
если переданного ключа не существует.
key
Ключ уменьшаемой записи.
offset
Величина на которую уменьшается значение записи.
initial_value
Инициирующее значение, устанавливаемое записи, если ключа не существует.
expiry
Время, когда срок действия записи истекает.
Возвращает новое значение записи в случае успешного выполнения или false
, если возникла ошибка.
Пример #1 Пример использования 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');
// Завершится неудачей т.к. значение записи не является числовым
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