memcache与rest服务相结合

在设计一个wordpress插件时,需要用到非wordpress数据库表中的内容,直接访问数据库表是最快的方法,但感觉耦合度太高,因此决定采用访问RESTful service的方法来远程调用数据,这时候带来的另一个问题是每次都要通过http请求访问远端,对性能会有影响,最后想到了何不把远程取来的数据存放在memcache里,这样就极大地节省了http请求的时间。

代码如下:

function getVarValue($var_name, $url) {    //连接到memcache    $memcache_obj = memcache_connect('localhost', 11211);    $obj_memcache = memcache_get($memcache_obj, $var_name);    if ($obj_memcache) {        //在memcache中找到了变量,则直接取用        $object = unserialize($obj_memcache);    } else {        //获取变量内容        $curl = curl_init();        curl_setopt($curl, CURLOPT_URL, $url);        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);        $str = curl_exec($curl);        curl_close($curl);        $object = json_decode($str);        //将变量内容存入memcache        memcache_set($memcache_obj, $var_name, serialize($object), MEMCACHE_COMPRESSED);    }    return $object;}

调用的时候只需要:

$myValue = getVarValue('myVar', 'http://api.myserver.com/myval?param=value');

这样就可以了。

经实测,原先需要1200毫秒才能返回的页面,现在只需要400毫秒。

关键字:php, memcached, JSON, restful

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部