Удаление элемента из Memcached не работает - PullRequest
1 голос
/ 21 ноября 2011

Я наткнулся на странное поведение сервера Memcached (версия 1.4.5): У меня есть один сервер, и я пытаюсь удалить сохраненное значение, и оно не работает, поскольку элемент остается там (и я не получаю никакой ошибки).

Я написал быстрый код PHP, который показывает проблему:

$memcache_object = memcache_connect(MEMCACHED_SERVER_ADDRESS, MEMCACHED_SERVER_PORT);
$key = '64b788714dx7cds5350101e37ec0ddd40253123d';

$myObject = memcache_get($memcache_object, $key);
echo count($myObject); // Prints 1000

memcache_delete($memcache_object, $key);

$myObjectSecondTry = memcache_get($memcache_object, $key);
if (empty($myObjectSecondTry))
    echo 'Empty'; // It does print it's empty

memcache_close($memcache_object);

Теперь, если я запускаю код один раз, он говорит «1000», а также говорит, что объект был пустым во второй попытке memcache_get (). Но , если я нажму кнопку обновить и запустить его снова, ключ $ все еще существует на сервере memcached, и я получу такой же вывод.

Я также пытался восстановить соединение между каждым вызовом memcache (т.е. get-> delete-> get), но это не помогло.

Единственное, что очищает память, - это сброс службы Memcached.

Пожалуйста, сообщите.

1 Ответ

1 голос
/ 21 ноября 2011

Насколько я помню, это была проблема с таймаутом, поэтому вы можете попробовать использовать:

memcache_delete($memcache_object, $key, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...