Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::increment增加数值元素的值

说明

public Memcached::increment(
    string $key,
    int $offset = 1,
    int $initial_value = 0,
    int $expiry = 0
): int|false

Memcached::increment() 将数值元素增加 offset 大小。如果元素的值不是数值类型,将返回错误。如果 key 不存在,Memcached::increment() 会将元素设置为 initial_value 参数。

参数

key

要增加值的元素的 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');
// ^ will fail due to item value not being numeric
var_dump($n);
?>

以上示例会输出:

int(11)
bool(false)

参见

添加备注

用户贡献的备注 5 notes

up
25
Anonymous
12 years ago
Spent a long time frustrated with this.  If you read the patch notes carefully:- Make increment/decrement initialize value when it is not available (when using binary protocol).If you dont have the opt binary protocol set the arguments for initial value just return an error 38 - INVALID ARGUMENTS. This is not documented.
up
8
jbaginski
12 years ago
PECL memcached < 0.2.0public int Memcached::increment ( string $key [, int $offset = 1 ] )
up
12
Sam
13 years ago
increment does not alter the time to live of the object.
up
5
Anonymous
12 years ago
If it'll save others some head-scratching, the PECL Memcached extension only supports initializing increment (or decrement) values from 2.0.0b2 onwards - i.e. not the version (1.0.2) that comes out of the box with Ubuntu 12.04.
up
0
raheut dot rahwana at duck dot com
2 months ago
// Fix for "Memcached::increment(): Initial value is only supported with binary protocol"$m = new Memcached();$m->addServer('localhost', 11211);// Option 1: Or, add the key first to avoid needing initial value support$m->add($key, $initial_value, $expiry);$m->increment($key, $offset);// Option 2: Use binary protocol to support initial value in increment()$m->setOption(Memcached::OPT_BINARY_PROTOCOL, true);$m->increment($key, $offset, $initial_value, $expiry);Tested on PHP 8.4.8
To Top