Странная проблема с Memcached

Я использую Memcached с PHP, код такой:

$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);

Теперь странная штука такая:

если я раскомментирую строку var_dump, я увижу извлеченные и сброшенные данные. Это сразу после того, как он попал в Memcached. Однако эта линия

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

просто всегда возвращайте false.

Я уверен, что ключ $ непротиворечив.

Что может пойти не так?


person Shawn    schedule 19.11.2010    source источник
comment
Только что попробовал мой сервер memcached из telnet, get $key ничего не возвращает :) странно.   -  person Shawn    schedule 19.11.2010
comment
Это полный код? Кажется, вы никогда не устанавливаете ключ на что-то полезное (т.е. вы устанавливаете его на $value, но $value пусто).   -  person ZoFreX    schedule 19.11.2010


Ответы (1)


Может возникнуть путаница с третьим параметром. Согласно документации, это флаг для включения сжатия (используйте MEMCACHE_COMPRESSED), а затем четвертый для тайм-аута (количество секунд или определенное время в будущем).

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

person Alister Bulman    schedule 09.01.2011