Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::incrementIncrement numeric item's value

Descrizione

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

Memcached::increment() increments a numeric item's value by the specified offset. If the item's value is not numeric, an error will result. Memcached::increment() will set the item to the initial_value parameter if the key doesn't exist.

Elenco dei parametri

key

The key of the item to increment.

offset

The amount by which to increment the item's value.

initial_value

The value to set the item to if it doesn't currently exist.

expiry

The expiry time to set on the item.

Valori restituiti

Returns new item's value on success o false in caso di fallimento.

Esempi

Example #1 Memcached::increment() example

<?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);
?>

Il precedente esempio visualizzerà:

int(11)
bool(false)

Vedere anche:

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