2010-11-22 72 views
1

我第一次使用PHP的PECL/Memcached,我不知道什麼時候或應該如何更新Memcached中的更改項目。何時以及如何更新Memcached中更改的項目?

我試過使用Memcached::addMemcached::set,但都沒有得到我期望的結果。

Memcached::set替換值自動

$memcached->set('key', 'value', time() + 300); 
$memcached->set('key', 'value2', time() + 300); 
var_dump($memcached->get('key')); // Outputs "value2" 

,如果它在Memcached的

已經設置
$memcached->add('key', 'value'); 
$memcached->add('key', 'value2'; 
var_dump($memcached->get('key')); // Outputs "value" 

那麼什麼是在Memcached的更新值的典型做法Memcached::add不會取代的價值?

+0

* *預期結果是什麼,然後?你的第一個例子告訴你如何更新它... – 2010-11-22 02:38:01

+0

那麼,那是該方法的預期結果。我只是不確定這是我應該做的。然後我會一直寫Memcached,這會(在我看來)擊敗目的。 – 2010-11-22 02:39:29

回答

2

您可以調用memcached :: get。

如果返回值不是false,那麼您的值就在緩存中,您現在可以使用它並可以使用它。

如果返回值爲false,它不在緩存中(從來沒有或過期)。計算該值,將其保存到您的memcache中,然後繼續執行您的程序。

緩存的目的是通過一次完成一些資源密集型任務,然後緩存一段時間並在將來的請求中重用該值,從而節省您的時間。

+0

謝謝你。我從根本上不理解的是,使用Memcached :: add時出現了過期。 – 2010-11-22 03:43:09

相關問題