2010-11-19 10 views
0

ich Memcached mit PHP bin mit, ist der Code wie folgt:Sonderbare Memcached Problem

$m = new Memcache; 
$m->connect('myserver', 11213); 

$key = ... // calculate key  

$value = $m->get($key); 
if($value) return $value 

// calculate $value 
$m->set($key, $value, 3600); 
#var_dump($m->get($key); 

Jetzt seltsame Sache ist wie folgt:

wenn ich die var_dump Linie Kommentar-, ich die Daten sehen können abgerufen und abgeladen. Das ist richtig, nachdem es in Memcached geschoben wurde. Diese Zeile

$value = $m->get($key); 

geben immer nur false zurück.

Ich bin sicher, der $ Schlüssel ist konsistent.

Was kann möglicherweise schiefgehen?

+0

Gerade versucht mein Memcached-Server von Telnet, bekomme $ Schlüssel nichts zurück :) seltsam. – Shawn

+2

Ist das der vollständige Code? Sie scheinen den Schlüssel nie auf etwas Nützliches zu setzen (d. H., Sie setzen ihn auf $ value, aber $ value ist leer). – ZoFreX

Antwort

2

Es kann über den dritten Parameter verwechselt werden. Gemäß der Dokumentation, ist es für eine Flagge, die Komprimierung zu aktivieren (MEMCACHE_COMPRESSED verwenden), und dann ist die vierte für eine Zeitüberschreitung (Anzahl der Sekunden, oder eine bestimmte Zeit in der Zukunft)

Memcache::set(string $key, mixed $var [, int $flag [, int $expire ]])