CakeFest 2024: The Official CakePHP Conference

Memcached::decrement

(PECL memcached >= 0.1.0)

Memcached::decrement数値アイテムの値を減らす

説明

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

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)

参考

add a note

User Contributed Notes 3 notes

up
18
Pramod Patil
9 years ago
decrement will not change TTL of the stored key/value.
up
11
Pramod Patil
9 years ago
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
up
0
jbaginski
11 years ago
PECL memcached < 0.2.0

public int Memcached::decrement ( string $key [, int $offset = 1 ] )
To Top