在使用Memcache缓存时,如何避免PHP执行查询

时间:2018-08-31 09:05:21

标签: php memcached

我有一个查询,该查询将在2秒钟内执行。问题是:例如,当两个用户同时输入URL:http://mypage.com/getInfo时,它将执行两次查询,因为第一次MySql查询尚未在Memcached中进行缓存。

$memcache = Memcache::init();
    if(! $memcache->get("info")) {
        $query = "SELECT T0.`type`, T0.notice FROM my_table WHERE...";
        $statement = $db->prepare($query);
        $statement->execute(array($id));

        $notices = $statement->fetchAll(\PDO::FETCH_OBJ);

        if(!$notices) {
            return false;
        }

        $memcache->set("info", json_encode($notices), 0, 86400);
    }

    $objnotices = (object) json_decode($memcache->get("info"));

    return $objnotices;

谢谢。

0 个答案:

没有答案