CakeFest 2024: The Official CakePHP Conference

Memcache::delete

(PECL memcache >= 0.2.0)

Memcache::delete从服务端删除一个元素

说明

Memcache::delete(string $key, int $timeout = 0): bool

Memcache::delete() 通过 key 删除元素。

参数

key

要删除的元素的key。

timeout

不支持此弃用参数,并且默认为 0 秒。不要使用此参数。

更新日志

版本 说明
Unknown 不建议使用 timeout 参数。此行为在多个 memcached 版本之间的行为不同,但设置为 0 是安全的。此弃用功能的其他值可能会导致内存缓存删除失败。

返回值

成功时返回 true, 或者在失败时返回 false

示例

示例 #1 Memcache::delete() 示例

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);

/* 元素将会通过服务器删除 */
memcache_delete($memcache_obj, 'key_to_delete');

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->delete('key_to_delete');

?>

参见

add a note

User Contributed Notes 5 notes

up
7
nibblebot at gmail dot com
13 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
up
4
vbaspcppguy at gmail dot com
13 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.
up
1
me at adamhahn dot com
11 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)
up
0
padys
10 years ago
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);
?>
up
-4
Anonymous
13 years ago
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.
To Top