(PECL memcache >= 0.2.0)
Memcache::delete -- memcache_delete — Удаляет элемент с сервера
Функция Memcache::delete() удаляет элемент по ключу key.
keyКлюч удаляемого элемента.
exptime
Параметр устарел и больше не поддерживается. Значение
по умолчанию равно 0 секунд.
Этот параметр не устанавливают.
Функция возвращает true , если выполнилась успешно, или false , если возникла ошибка.
| Версия | Описание |
|---|---|
| PECL-модуль memcache 3.0.5 |
Параметр exptime устарел и не требует передачи аргумента.
Передача значения, которое отличается от 0, вызывает неожиданные ошибки.
|
Пример #1 Пример удаления элемента с сервера методом Memcache::delete()
<?php
/* Вызов функции API-интерфейса в процедурном стиле */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* Сервер удалит элемент */
memcache_delete($memcache_obj, 'key_to_delete');
/* Вызов метода API-интерфейса в объектно-ориентированном стиле */
$memcache_obj = new Memcache();
$memcache_obj->connect('memcache_host', 11211);
$memcache_obj->delete('key_to_delete');
?>the Memcache::delete(key) function is broken on several combinations of memcached+pecl-memcache combinations.
pecl-memcache 2.2.5 + memcached 1.4.2 - Memcache::delete(key) WORKS
pecl-memcache 2.2.5 + memcached 1.4.3 - Memcache::delete(key) DOES NOT WORK
pecl-memcache 2.2.5 + memcached 1.4.4 - Memcache::delete(key) WORKS
pecl-memcache 2.2.5 + memcached 1.4.5 - Memcache::delete(key) WORKS
pecl-memcache 3.0.4 + memcached 1.4.2 - Memcache::delete(key) WORKS
pecl-memcache 3.0.4 + memcached 1.4.3 - Memcache::delete(key) DOES NOT WORK
pecl-memcache 3.0.4 + memcached 1.4.4 - Memcache::delete(key) DOES NOT WORK
pecl-memcache 3.0.4 + memcached 1.4.5 - Memcache::delete(key) DOES NOT WORKAccording to the documents, $timeout is not required, but for me if I did not include it regardless of value, it fired an error. I made a simple fix for it.
<?php
class memcache_tools extends memcache
{
public function delete($key, $expire=0)
{
parent::delete($key, $expire);
}
}
?>
This will force it to behave as it should regardless of version.I could not get the delete to work properly, so I ended up trying the 'set' method and setting the timeout value to -1.
<?php
$memcache->set('index', 'deleted', 0, -1);
?>
It solved my problem with the delete method.
(using memcached 1.4.5 and pecl-memcache 3.0.6)