memcached不保存生成的数据

sh7euo9m  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(438)

我得到了下面的代码,如果调用,应该将查询数据保存到memcached中,并在那里存储600ms $response 是空的,变量堆上写着miss。知道我做错了什么吗?memcached服务器位于端口11211上 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;
rkue9o1l

rkue9o1l1#

看起来好像是用0作为超时,在调用中。。。

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

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

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

相关问题