为此苦恼了很久。仔细阅读补丁说明后
- 使 increment/decrement 在值不可用时初始化值(使用二进制协议时)。
如果未设置 opt 二进制协议,则初始值的参数将返回错误 38 - 无效参数。这并未在文档中说明。
(PECL memcached >= 0.1.0)
Memcached::increment — 递增数值项的值
$key
,$offset
= 1,$initial_value
= 0,$expiry
= 0
Memcached::increment() 将数值项的值递增指定的 offset
。如果项的值不是数值,则会产生错误。Memcached::increment() 如果键不存在,则会将项设置为 initial_value
参数的值。
key
要递增的项的键。
offset
要递增项的值的数量。
initial_value
如果项当前不存在,则要设置项的值。
expiry
要设置在项上的过期时间。
成功时返回新的项的值,失败时返回 false
。
示例 #1 Memcached::increment() 示例
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('counter', 0);
$m->increment('counter');
$n = $m->increment('counter', 10);
var_dump($n);
$m->set('counter', 'abc');
$n = $m->increment('counter');
// ^ 由于项值不是数值,此操作将失败
var_dump($n);
?>
以上示例将输出
int(11) bool(false)