我正在尝试使用memcached缓存我网站上一些最常用的查询。问题是,它一直返回NULL。
这里有一些代码;
$get_announcements = core::$mem->get('index_announcements');
if ($get_announcements === false) // there's no cache
{
$get_announcements = $dbl->run("SELECT `id`, `text`, `user_groups`, `type`, `modules`, `can_dismiss` FROM `announcements` ORDER BY `id` DESC")->fetch_all();
core::$mem->set('index_announcements', $get_announcements, 600);
}
所以我抓住了密钥,然后检查它是否已设置,如果没有,那么从数据库中取出并设置它。
问题是,它似乎工作了一段时间,但是当我通过执行检查时最终只返回NULL:
var_dump(core::$mem->get('index_announcements'));
似乎关键是实际设置,但它的内容是空的?这是如何在memcached中正常到期的吗?我真的很困惑。