(PECL memcache >= 0.2.0)
Memcache::replace -- memcache_replace — Заменяет значение элемента кеша
$memcache,$key,$var,$flag = ?,$expire = ?
Метод Memcache::replace() заменяет значение
элемента кеша с ключом key. Метод Memcache::replace() возвращает
значение false , если сервер не содержит элемент с таким ключом, иначе метод Memcache::replace() работает аналогично
методу Memcache::set() .
keyvarflagMEMCACHE_COMPRESSED элемент
сохраняется в сжатом виде. Модуль сжимает элемент средствами библиотеки zlib.
expire
Функция возвращает 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);
?>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. "