考虑以下代码:
function getUser($uid) {
global $_memcache;
$u = $_memcache->get("user-".$uid);
if( !$u) {
$u = ... // get user from database
$_memcache->set("user-".$uid,$u);
}
return $u;
}
现在,这个函数可能会被称为很多。例如,在论坛上,它可能在单个页面加载中被调用 30 多次。是否值得做以下事情,或者 Memcache 是否已经足够优化?
function getUser2($uid) {
static $localcache = [];
if( isset($localcache[$uid])) return $localcache[$uid];
return $localcache[$uid] = getUser($uid);
}