Как я могу избежать выполнения запроса PHP, пока кэширование с Memcache - PullRequest
0 голосов
/ 31 августа 2018

У меня есть запрос, который выполняется примерно за 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;

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...