2010-11-22 4 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::add自動的に値を置き換え、それがすでにMemcachedの

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

を設定しています場合には、値を置き換えることはありませんので、Memcachedの中の値を更新するための典型的な練習は何ですか?

+0

期待される結果はなんですか?あなたの最初の例は、それを更新する方法を示しています... –

+0

それは、そのメソッドの期待される結果です。私はそれが私が本当にやっているべきかどうかだけは分かりません。それから私はMemcachedにいつも書いています。それは(私にとってはそう思われる)目的を破ってしまうでしょう。 –

答えて

2

memcached :: getを呼び出します。

戻り値がfalseでない場合は、キャッシュに値が入っていて、今度はそれを持っていて、それを利用することができます。

戻り値がfalseの場合、その値はキャッシュにはありません(期限切れまたは期限切れになったもの)。値を計算してmemcacheに保存し、プログラムを続行します。

キャッシュの目的は、リソース集約的なタスクを1回実行してからしばらくキャッシングし、将来のリクエストでその値を再利用することを避けることです。

+0

ありがとうございます。私が根本的に理解していなかったのは、 'Memcached :: add'を使うときに期限が切れたことでした。 –

関連する問題