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 ă§ćĺŽăăă ăć¸ăăăžăă
ă˘ă¤ăă ăŽĺ¤ăć°ĺ¤ă§ăŞăĺ ´ĺăŻă¨ăŠăźă¨ăŞăăžăă
ćä˝ĺžăŽĺ¤ă 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)
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