Memcache是SAE为开发者提供的分布式内存缓存服务,用来以共享的方式缓存用户的小数据。可以配置容量,根据你的具体项目大小而定。
Memcache主要的使用场景有以下两个:
需要共享某些key-value 形式的小数据时。(因为SAE的Web服务是分布式环境,所以使用全局变量方式等方式是不行的)。
缓存MySQL等后端存储的数据。快速进行数据响应,减轻后端存储的压力。
首次使用,需要初始化Memcache。
Memcache服务目前提供以下接口:
memcache_init - 初始化MC链接
memcache_get - 获取MC数据
memcache_set - 存入MC数据
YiXinCore.clss.php类库中
public function getMemcacheAccessToken()
{
$mc=memcache_init();
$ak=memcache_get($mc,"token");
if (empty($ak))
{
$arr = $this->getAccessToken();
if($arr['errcode'])
{
Log::wLog('INFO','获取access_token失败,错误码:'.$arr['errcode']);
return 0;
}
else
{
$arr['access_time'] = time();
Log::wLog('INFO','获取access_token成功。');
memcache_set($mc,"token",$arr['access_token'],86400);
return memcache_get($mc,"token");
}
}
else
{
return $ak;
}
}
public function getAccessToken()
{
$url = 'https://api.yixin.im/cgi-bin/token?grant_type=client_credential';
$url .= '&appid='.APPID.'&secret='.APPSECRET;
$re = file_get_contents($url,false);
$arr = json_decode($re,true);
if($arr['errcode'])
{
Log::wLog('INFO','获取access_token失败,错误码:'.$arr['errcode']);
return 0;
}
else
{
$arr['access_time'] = time();
Log::wLog('INFO','获取access_token成功。');
return $arr;
}
}
获取accessToken,代码调用:
$ak=new YiXinCore();
echo $ak->getMemcacheAccessToken();