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 で指定しただけ増やします。 アイテムの値が数値でない場合はエラーとなります。 アイテムが存在しない場合、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)

参考

add a note

User Contributed Notes 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