note 76521 added to function.Memcache-delete
| From: | Sc00bz at osu1 dot php dot net | Date: | Thu, 19 Jul 2007 07:18:53 +0000 |
| Subject: | note 76521 added to function.Memcache-delete | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-128713@lists.php.net to get a copy of this message | ||
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
----
Server IP: 64.71.164.2
Probable Submitter: 68.23.161.189
----
Manual Page -- http://www.php.net/manual/en/function.Memcache-delete.php
Edit -- https://master.php.net/note/edit/76521
Del: integrated -- https://master.php.net/note/delete/76521/integrated
Del: useless -- https://master.php.net/note/delete/76521/useless
Del: bad code -- https://master.php.net/note/delete/76521/bad+code
Del: spam -- https://master.php.net/note/delete/76521/spam
Del: non-english -- https://master.php.net/note/delete/76521/non-english
Del: in docs -- https://master.php.net/note/delete/76521/in+docs
Del: other reasons-- https://master.php.net/note/delete/76521
Reject -- https://master.php.net/note/reject/76521
Search -- https://master.php.net/manage/user-notes.php