Memcache::replace

(PECL memcache >= 0.2.0)

Memcache::replaceЗаменить значение существующего элемента

Описание

Memcache::replace(
    string $key,
    mixed $var,
    int $flag = ?,
    int $expire = ?
): bool

Memcache::replace() используется для замены значения существующего элемента с данным ключом key. В случае, если элемент с таким ключом не найден, Memcache::replace() возвращает false. В остальных случаях Memcache::replace() работает аналогично Memcache::set(). Вы также можете использовать функцию memcache_replace().

Список параметров

key

Ключ, связанный с элементом.

var

Сохраняемое значение. Строки и числа сохраняются как есть, остальные типы сериализируются.

flag

Используйте MEMCACHE_COMPRESSED для сохранения элемента сжатым (используется zlib).

expire

Срок жизни элемента. Если равен нулю, срок жизни никогда не истечёт. Вы также можете использовать временную метку Unix, или число секунд, начиная с текущего времени, однако в этом случае количество секунд не может быть больше 2592000 (30 дней).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::replace()

<?php

$memcache_obj
= memcache_connect('memcache_host', 11211);

/* процедурное API */
memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

/* объектно-ориентированное API */
$memcache_obj->replace("test_key", "some variable", false, 30);

?>

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

  • Memcache::set() - Сохранить данные на сервере
  • Memcache::add() - Добавить элемент с указанным ключом

add a note add a note

User Contributed Notes 1 note

up
8
adam.pippin [AT] ohmedia.ca
14 years ago
This page mentions that replace should be used rather than set, but gives no reason. Best information I could find was a comment by 'argyleblanket' on the set page. (http://www.php.net/manual/en/memcache.set.php#84032)

"Using set more than once for the same key seems to have unexpected results - it does not behave as a "replace," but instead seems to "set" more than one value for the same key.  "get" may return any of the values.

This was tested on a multiple-server setup - behaviour may be different if you only have one server. "
To Top