note 76521 deleted from function.Memcache-delete by danbrown

From: 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

« previous php.notes (#144785) next »