Memcached не сохраняет сгенерированные данные

0

Я получил следующий код, который должен сохранять данные запроса в Memcached при вызове и сохранять их там в течение 600 мс. Но каждый раз, когда я загружаю страницу, $response становится пустым, а var_dump говорит MISS. Есть идеи, что я делаю не так? Memcached сервер находится на порту 11211 как ps aux | grep memcached ps aux | grep memcached говорит мне.

$memcache = new Memcached();
$memcache->addServer("127.0.0.1", 11211);
$response = $memcache->get("test");
var_dump($response);
if ($response) {
    var_dump('HIT');
    $result = $response;
} else {
   var_dump('MISS');
   $sql = 'SELECT * FROM test WHERE bla BETWEEN "'.esc_sql($start).'" AND "'.esc_sql($end).'" ORDER BY datumbekanntgabe ASC';

   $result = $this->mydb->get_results($sql);
   $memcache->set("test", $result, 0, 600);
}
return $result;
  • 0
    Вы пытались увеличить 600 мс и посмотреть, работает ли это?
  • 0
    да, я установил на 5000, та же проблема
Показать ещё 11 комментариев
Теги:
memcached

1 ответ

1
Лучший ответ

Похоже, что он использовал 0 в качестве таймаута в вызове...

$memcache->set("test", $result, 0, 600);

В memcache третий параметр - 0 - это flag используемый для сжатия, в то время как четвертый - тайм-аут, в memcached, хотя этот флаг отсутствует, поэтому вызов должен быть

$memcache->set("test", $result, 600);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню