CakeFest 2024: The Official CakePHP Conference

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)

参见

add a note

User Contributed Notes 4 notes

up
24
Anonymous
11 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
11 years ago
PECL memcached < 0.2.0

public int Memcached::increment ( string $key [, int $offset = 1 ] )
up
11
Sam
11 years ago
increment does not alter the time to live of the object.
up
5
Anonymous
10 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.
To Top