首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP缓存脚本-保存缓存数据而不是减少网站页面负载

PHP缓存脚本-保存缓存数据而不是减少网站页面负载
EN

Stack Overflow用户
提问于 2012-08-07 04:59:55
回答 1查看 360关注 0票数 0

我在一个网站上工作,这是建立在LAMP上,从XML馈送的数据(汽车经销商库存),并将其显示在网站上。在索引页面上有一个旋转器,它显示4辆随机的汽车,但是页面加载有很长的延迟-大约7-10秒。这是因为在显示结果之前,该网站正在循环浏览数据,以查找具有图像并满足其他标准的汽车。我的开发人员将这个脚本放在一起缓存结果5分钟:

代码语言:javascript
复制
/* 
 * Cache requests for 5 minutes
 * Wraps original method (now _sendRequest)
 */
private function sendRequest($xml) {
    error_log($xml);
    $cache_filename = dirname(__FILE__) . '/cache/' . md5($xml);
    if (file_exists($cache_filename) && (time() - filemtime($cache_filename)) < 300 && filesize($cache_filename) > 100) {
        return file_get_contents($cache_filename);
    } elseif (file_exists($cache_filename)) {
        unlink($cache_filename);
    }
    $response = $this->_sendRequest($xml);
    if (!is_dir(dirname($cache_filename))) {
       @mkdir(dirname($cache_filename),0775,true);
    }
    @file_put_contents($cache_filename, $response);
    return $response;
}

private function _sendRequest($xml) {
    $options = array(
        CURLOPT_RETURNTRANSFER  => true,
        CURLOPT_CONNECTTIMEOUT  => 120,
        CURLOPT_TIMEOUT         => 120,
        CURLOPT_POST            => true,
        CURLOPT_USERAGENT       => Config::$appName,
        CURLOPT_USERPWD         => Config::$aweAPIKey,
        CURLOPT_URL             => Config::$aweAPIURL,
        CURLOPT_POSTFIELDS      => $xml
    );
    $ch = curl_init();
    curl_setopt_array($ch, $options);
    $content = curl_exec($ch);
    //echo "ERROR: " . curl_error($ch);
    curl_close($ch);

    return $content;
}

脚本的目录在/lib/client.php中,它在/lib/cache中保存了大量包含车辆数据的文本文件,但是站点页面的负载并没有减少。是否应该对脚本进行一些更改,或者如何保存缓存的数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-07 05:06:29

在性能方面,每次请求都访问硬盘是很昂贵的,所以从逻辑上讲,您的缓存系统并不会真正起到帮助作用。取而代之的是APCmemcachedRedis,因为它们允许您将数据直接存储在内存中,读写速度要快得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11835849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档