сохранить документ в кеш memcache

Aug 24, 2013

Суть идеи такова: сохранить ресурс в виде html странички в кеш memcache средставами MODX (плагином), посредством nginx прочитать ресурс из кеша, так сказать минуя MODX… Плюсы — nginx отдает страничку практически мгновенно, сервер не тратит ресурсы… нам нужно два события — OnSiteRefresh и OnBeforeSaveWebPageCache. По первому событию чистить кеш, по второму сохранить ресурс в кеш. скелет плагина: switch ($modx->event->name) { case 'OnSiteRefresh': //чистим кеш break; case 'OnBeforeSaveWebPageCache': if ($modx->resource->get('cacheable') && $modx->resource->get('published') && $modx->resource->_output != '') {

        $memcache = new Memcache;
        $memcache->connect('localhost', 11211);
        $expire = 50;//время хранения 50с
        $uri = $modx->resource->get('uri'); 
        $context = $modx->context->get('key');
        $key = "$context/$uri";
        
        $output = &$modx->resource->_output;
        $time = time();
        $cacheArray = array('output'=>$output, 'time'=>$time);
        $tmp_object = $output;
        $memcache->set($key, $tmp_object, false, $expire);
        $memcache->close();

    break;
    }

} запись в кеш $memcache = new Memcache; $memcache->connect('localhost', 11211);//подключаемся к memcache $expire = 50;//время хранения 5с кеша $tmp = "

привет

"; $memcache->set('key', $tmp, false, $expire);//записываем по ключу значение в кеш $memcache->close();//закрываем подключение получить значение (страничку) из кеша пока на время проб, просто снипетом $memcache = new Memcache; $memcache->connect('localhost', 11211) or die ("Не могу подключиться"); $get_result = $memcache->get('key'); echo "Данные из кеша:".$get_result." \n"; $memcache->close(); ключ формировать по следующему шаблону: site_name:context:uri время хранения кеша пока не знаю, возможно алгоритм какой нибудь придумать, пока можно выставить ручками p.s. хотел донести до вас основную мысль, интересно выслушать ваше мнение… я не программист и возможно это вообще бредовая идея… Жду ваши коментарии…