Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::incrementIncrementar un valor numérico de un ítem

Descripción

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

Memcached::increment() incrementa un valor numérico de un ítem por el offset especificado. Si el valor del ítem no es numérico, generará un error. Memcached::increment() establecerá el ítem al parámetro initial_value si la clave no existe.

Parámetros

key

La clave del ítem a incrementar.

offset

La cantidad por la que incrementar el valor del ítem.

initial_value

El valor para establecer el ítem si actualmente no existe.

expiry

El periodo de expiración a establecer para el ítem.

Valores devueltos

Devuelve el nuevo valor del ítem en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de 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');
// ^ fallará debido a que el valor del ítem no es numérico
var_dump($n);
?>

El resultado del ejemplo sería:

int(11)
bool(false)

Ver también

add a note add a note

User Contributed Notes 4 notes

up
22
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
12 years ago
increment does not alter the time to live of the object.
up
5
Anonymous
11 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