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. Если значение записи не является числовым, то будет возвращена ошибка. Если функция уменьшит значение записи меньше нуля, будет установлено нулевое значение. 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)

Смотрите также

  • Memcached::increment() - Увеличивает числовое значение записи
  • Memcached::incrementByKey() - Увеличивает числовое значение записи, хранимой на указанном сервере
  • Memcached::decrementByKey() - Уменьшает числовое значение записи, хранящееся на определённом сервере

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