Onex ecstore使用阿里云数据库Memcache版
阿里云最近更新得很勤快,各种服务都开始逐渐浮出水面,其中就有云数据库Mecache和Redis,外带可视化界面管理,这对于维护监测来说,可是个好东西,本文介绍一下如何让ecstore支持阿里云的Memcache。
点我跳转Ecstore使用阿里云数据库Memcache版教程
阿里云上购买好memcache十分方便快捷,付钱即可,瞬间开通,购买的时候记得如果要用内网功能的话,需要买同一区域的,不同区域的内网是连接不上的。买完后得到以下信息。
打开config.php文件,找到cache memcache配置项,根据上图截图填入对应内容,大致如下:
// cache memcache 服务器配置
define('CACHE_MEMCACHE_CONFIG', 'test.m.aliyun.com:11211');
define('MEMCACHE_USER','user');
define('MEMCACHE_PASSWORD','');
define('CACHE_STORAGE', 'base_cache_memcached');
到这里配置文件修改完毕,由于ecstore默认的memcached加载是不带密码访问的,所以这里稍微需要调整一下代码,找到/base/lib/cache/memcached.php文件,修改下面信息:
public function connect()
{
...
if(strpos($row, 'unix://') === 0){
//self::$_cacheObj->addServer($row, 0); todo:memcached不支持unix://
}else{
$tmp = explode(':', $row);
self::$_cacheObj->addServer($tmp[0], $tmp[1]);
//启用带用户验证的阿里云memcache
if(defined('MEMCACHE_USER') && defined('MEMCACHE_PASSWORD')){
//使用sasl时需要先启用binary_protocal
self::$_cacheObj->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
self::$_cacheObj->setSaslAuthData(MEMCACHE_USER, MEMCACHE_PASSWORD);
}
...
}
好了,就只需要改动这两个地方,如无意外,已经可以开始使用阿里云Memcache服务了。相比在本地环境下搭建Memcached服务,共同耗用系统资源来说,这种分割还是可以减轻服务器一定的压力的。一般起步阶段,还没有人会为了Memcached单独建一个本地服务器的吧。