Memcached不保存生成的数据

时间:2018-10-30 16:03:15

标签: php mysql memcached

我得到以下代码,该代码应在调用时将查询数据保存到Memcached并将其存储600ms。但是每次我加载页面时,$response都是空的,而var_dump则说MISS。任何想法我在做什么错? ps aux | grep memcached告诉我,Memcached服务器位于端口11211上。

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

1 个答案:

答案 0 :(得分:1)

在通话中,好像使用了0作为超时时间...

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

memcache中,第三个参数-0是用于压缩的flag,而第四个参数是超时,在memcached中,尽管该标志不存在,所以调用应该是

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