PHP Doku:: Delete item from the server - memcache.delete.html

Verlauf / Chronik / History: (2) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSonstige DiensteMemcacheThe Memcache classMemcache::delete

Ein Service von Reinhard Neidl - Webprogrammierung.

The Memcache class

<<Memcache::decrement

Memcache::flush>>

Memcache::delete

(PECL memcache >= 0.2.0)

Memcache::deleteDelete item from the server

Beschreibung

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

Memcache::delete() deletes an item with the key.

Parameter-Liste

key

The key associated with the item to delete.

timeout

This deprecated parameter is not supported, and defaults to 0 seconds. Do not use this parameter.

Changelog

Version Beschreibung
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.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 Memcache::delete() example

<?php

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

/* item will be deleted by the server */
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');

?>

Siehe auch


6 BenutzerBeiträge:
- Beiträge aktualisieren...
vbaspcppguy at gmail dot com
8.09.2010 21:47
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.
Anonymous
29.07.2010 0:30
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.
nibblebot at gmail dot com
9.07.2010 17:58
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
z at zaebal dot com
28.12.2009 17:21
To workaround the "delete" issue just pass zero as timeout parameter.
Wilfried Loche
25.08.2009 11:01
Hi,

Be careful about multi memcached servers. It seems logical the get() methods use only one server but, what about the delete() and update() methods?

In fact, at least the delete() method perform a delete on the first server it finds!

For the test code, you can see it there:
http://pecl.php.net/bugs/bug.php?id=16810

Hope this helps someone!
Wilfried
Jocke Berg
6.05.2009 0:02
I was searching for a function/method in this class that would "reset" (or "update", depending on how you look at it) the timeout value for a  key. I was searching my  butt off when I finally figured; this is the one.

Example: You have accessed a web-page including something that should be "in-cache" for way more than 30 days (until the memcache server gets a downtime for some reason). Since the limit for having something in the cache is 30 days, this will be a problem. Simple (yet somewhat non-optimal) solution:

<?php
//How to "update" the value
if($memcache_key_exists){
       
$memcache_obj->delete('key', (3600*24*30));
}
?>

Have fun.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)