decrement 不会改变存储的键/值对的 TTL。
(PECL memcached >= 0.1.0)
Memcached::decrement — 递减数值项的值
$key
,$offset
= 1,$initial_value
= 0,$expiry
= 0
Memcached::decrement() 将数值项的值递减指定的 offset
。如果该项的值不是数值,则会产生错误。如果操作会导致值减至 0 以下,则新值为 0。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)
发现可能的错误
当 memcached::OPT_BINARY_PROTOCOL 设置为 true 时,decrement 会失败并返回 -1。
在 PECL Memcached 2.1.0 和 libmemcached 版本 1.0.8 上测试