note 76521 deleted from function.Memcache-delete by danbrown
| From: | danbrown@php.net | Date: | Fri, 26 Sep 2008 15:22:37 +0000 |
| Subject: | note 76521 deleted from function.Memcache-delete by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-144785@lists.php.net to get a copy of this message | ||
Note Submitter: Sc00bz
----
Timeout is the amount of time the key is in the delete queue. While the key is in the delete queue
you can't add that key back into the cache, but you can use set. Set will remove the key from
the delete queue and add it to cache.
Ex:
<?php
$memcache = new Memcache();
$memcache->connect("127.0.0.1", 11211);
// add "test" with timeout 60 sec
echo "add: " . ($memcache->add("test", "value", 0, 60) ?
"t" : "f") . "<br>";
// get works because it was just added
echo "get: " . (($ret = $memcache->get("test")) !== false ?
"'$ret'" : "f") . "<br>";
// delete works because it's in cache
echo "delete: " . ($memcache->delete("test", 1) ? "t" :
"f") . "<br>";
// can't get "test" it is deleted
echo "get: " . (($ret = $memcache->get("test")) !== false ?
"'$ret'" : "f") . "<br>";
// can't add "test" it is still in delete queue
echo "add: " . ($memcache->add("test", "value", 0, 60) ?
"t" : "f") . "<br>";
echo "sleep(2)<br>";
// force output
ob_flush();
flush();
// wait 2 sec
sleep(2);
// add works because "test" is not in delete queue
echo "add: " . ($memcache->add("test", "value", 0, 60) ?
"t" : "f") . "<br>";
// delete works because it's in cache
echo "delete: " . ($memcache->delete("test", 1) ? "t" :
"f") . "<br>";
// set removes "test" from delete queue and adds it to the cache
echo "set: " . ($memcache->set("test", "value", 0, 60) ?
"t" : "f") . "<br>";
// get works
echo "get: " . (($ret = $memcache->get("test")) !== false ?
"'$ret'" : "f") . "<br>";
echo "sleep(2)<br>";
// force output
ob_flush();
flush();
// wait 2 sec
sleep(2);
// get still works
echo "get: " . (($ret = $memcache->get("test")) !== false ?
"'$ret'" : "f") . "<br>";
// delete works because it's in cache
echo "delete: " . ($memcache->delete("test") ? "t" : "f")
. "<br>";
// add works because "test" wasn't added to the delete queue
echo "add: " . ($memcache->add("test", "value", 0, 60) ?
"t" : "f") . "<br>";
// delete works because it's in cache
echo "delete: " . ($memcache->delete("test") ? "t" : "f")
. "<br>";
?>
Output:
add: t
get: 'value'
delete: t
get: f
add: f
sleep(2)
add: t
delete: t
set: t
get: 'value'
sleep(2)
get: 'value'
delete: t
add: t
delete: t