如何利用缓存提高页面加载速度

互联网有一项著名的原则叫“8秒钟原则”,即首页的加载速度超过8秒,有70%的用户就会不耐烦,选择离开。

做网站或APP当然内容是王道,产品提供有价值的内容,才会吸引更多人使用;但如果加载过慢,纵然你的内容再好,也会有相当一部分用户流失。

相对于早期的“静态网页”,现在大家开发网站时都趋向于使用后端语言和数据库通信,为用户实时展现最新文章、最新评论的“动态网页”。这个理念是没错,可当用户访问量增多时,数据库通信将会严重拖慢页面加载速度。假设5秒钟之内有1000名用户访问了你网站的首页,如果你在这5秒没有更新任何内容的话,这1000人访问了1000次数据库,只为了得到一模一样的数据。999次数据库连接通信其实就是在浪费时间和资源。

“动态网页”和数据库的同步其实没必要精确到分和秒。服务器端如果有一个10分钟的缓存机制,将大大减少用户访问时的加载时间。据我的经验,有数据库通信,加载需要3秒钟的页面,使用缓存后可以缩短至600毫秒之内。

php里有一个很轻量、实用的工具叫phpfastcache,用起来简单的不要不要的,只需要$cache->get来获取缓存过的值,如果这个值不存在,那就去数据库里把它抓取出来,用$cache->set把值存入就好了。接下来的10分钟,所有用户访问都在服务器就可以解决,不用连数据库了。当然如果数据不会经常变化的话,缓存有效时间可以设置更久。

$results = $cache->get("identity_keyword");

if($results == null) {
    $results = cURL->get("http://www.youtube.com/api/json/url/keyword/page");
    // Write to Cache Save API Calls next time
    $cache->set("identity_keyword", $results, 60*10);
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注