2010-11-22 4 views
1

Ich verwende PHP's PECL/Memcached zum ersten Mal und ich kann nicht herausfinden, wann oder wie ich geänderte Elemente in Memcached aktualisieren sollte.Wann und wie aktualisierst du ein geändertes Element in Memcached?

Ich habe versucht, beide Memcached::add und Memcached::set und beide ergibt nicht die Ergebnisse, die ich erwarte.

Memcached::set den Wert automatisch

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

und Memcached::add nicht den Wert ersetzen, wenn es bereits in Memcached

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

Was ist also die typische Praxis für die Aktualisierung von Werten in Memcached ersetzt?

+0

Was * ist * das erwartete Ergebnis, dann? Ihr erstes Beispiel zeigt Ihnen, wie Sie es aktualisieren ... –

+0

Nun, das ist das erwartete Ergebnis für diese Methode. Ich bin mir nur nicht sicher, ob ich das wirklich tun sollte. Dann würde ich die ganze Zeit Memcached schreiben, was (so scheint es mir) den Zweck besiegen würde. –

Antwort

2

Sie rufen Memcached :: get.

Wenn der Rückgabewert nicht falsch ist, war Ihr Wert im Cache und Sie haben es jetzt und können es nutzen.

Wenn der Rückgabewert falsch ist, ist es nicht im Cache (war nie oder was dort war abgelaufen). Berechnen Sie den Wert, speichern Sie ihn in Ihrem Memcache und fahren Sie mit Ihrem Programm fort.

Der Zweck des Caches ist es, Sie davor zu bewahren, einige ressourcenintensive Aufgaben zu erledigen, indem Sie es einmal ausführen, es dann für eine Weile zwischenspeichern und den Wert für zukünftige Anfragen wiederverwenden.

+0

Danke dafür. Was ich grundsätzlich nicht verstand, war, dass es bei der Verwendung von 'Memcached :: add' einen Ablauf gab. –

Verwandte Themen