1
我正在將memcache添加到我的網站中,並且我遇到的問題是我緩存對象,因此它易於在其他對象或頁面中使用。問題是我在加載對象時緩存對象,所以如果我對對象中的變量進行了更改,則不會將其傳遞到其他頁面上。我是否錯過了某些東西,或者是否真的必須在所有處理之後保存緩存的對象?使用Memcache緩存PHP類
// ON THE PAGE I FIRST CALL
$objState = $gb->objCache->State('1');
echo "Name:" . $objState->get_Name() . "<br>";
$objState->set_Name('New Name');
// ON ANOTHER PAGE I CALL IT AGAIN
$objState = $gb->objCache->State('1');
echo "Name:" . $objState->get_Name() . "<br>";
$objState->set_Name('New Name 2');
// THE FUNCTION THAT I CALL TO GET THE STATE CLASS/OBJECT
function State($id, $reload=false) {
$objState = null;
$cached = false;
if (is_object($this->gb->memcache))
$cached = $this->gb->memcache->get('objState_' . $id . '_' . getCompanyUniqueID());
if ($cached !== FALSE && is_object($cached) && !$reload) {
$objState = $cached;
} else {
$objState = new State($id);
// Store generated XML for 5 minutes (300 seconds)
if (is_object($this->gb->memcache))
$this->gb->memcache->set('objState_' . $id . '_' . getCompanyUniqueID(), $objState, 0, 300); // Don't worry about third argument, it controls compression
}
return $objState;
}
如果您希望它保留在memcache上,則必須對memcache進行任何更改。 – 2012-02-22 07:14:51