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