Memcache::delete
(PECL memcache >= 0.2.0)
Memcache::delete — 从服务端删除一个元素
说明
Memcache::delete(string
$key
, int $timeout
= 0): bool
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
。
范例
示例 #1 Memcache::delete() example
<?php
/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* 10秒后key_to_delete对应的值会被从服务端删除 */
memcache_delete($memcache_obj, 'key_to_delete', 10);
/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$memcache_obj->delete('key_to_delete', 10);
?>

User Contributed Notes 5 notes
nibblebot at gmail dot com ¶
11 years ago
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
vbaspcppguy at gmail dot com ¶
11 years ago
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.
me at adamhahn dot com ¶
9 years ago
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)