©
本文檔使用 php中文網手册 發布
(PECL memcache >= 0.2.0)
Memcache::delete — 从服务端删除一个元素
$key
[, int $timeout
= 0
] ) Memcache::delete() 函数通过key
删除一个元素。
如果参数timeout
指定,该元素会在timeout
秒后失效。
同样也可以使用 memcache_delete() 函数完成同样功能。
key
要删除的元素的key。
timeout
删除该元素的执行时间。如果值为0,则该元素立即删除,如果值为30,元素会在30秒内被删除。
版本 | 说明 |
---|---|
Unknown |
It's not recommended to use the timeout parameter. The
behavior differs between memcached versions, but setting to 0
is safe. Other values for this deprecated feature may cause the memcache delete
to fail.
|
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
Example #1 Memcache::delete() example
<?php
$memcache_obj = memcache_connect ( 'memcache_host' , 11211 );
memcache_delete ( $memcache_obj , 'key_to_delete' , 10 );
$memcache_obj = new Memcache ;
$memcache_obj -> connect ( 'memcache_host' , 11211 );
$memcache_obj -> delete ( 'key_to_delete' , 10 );
?>
[#1] padys [2013-04-12 06:24:55]
In my case this code does NOT work:
<?php
$memcache->set('index', 'deleted', 0, -1);
?>
because of expire == -1.
I set expire = 1 (and I prefer "replace"):
<?php
$memcache->replace('index', '', 0, 1);
?>
[#2] me at adamhahn dot com [2012-07-03 19:26:34]
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)
[#3] vbaspcppguy at gmail dot com [2010-09-08 12:47:41]
According 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.
[#4] Anonymous [2010-07-28 15:30:34]
Regardless of whether or not it succeeds, for me on Ubuntu 10.04 it always returns false. Just an FYI, you can't seem to rely on the result.
[#5] nibblebot at gmail dot com [2010-07-09 08:58:47]
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 WORK