【发布时间】:2018-10-30 16:03:15
【问题描述】:
我得到了以下代码,如果调用它应该将查询数据保存到 Memcached 并在那里存储 600 毫秒。但是每次我加载页面时,$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;
【问题讨论】:
-
你试过增加 600ms 看看是否有效?
-
是的,我设置为 5000,同样的问题
-
你能检查你的
$memcache->set参数吗,因为我不确定0是干什么用的? -
@NigelRen 压缩与否
-
您可以尝试在您的
set()调用中删除0,因为这似乎是针对memcache 而不是memcached - 或者我快疯了:-/