使用阿里云OCS优化Discuz性能

[文章作者:磨延城 转载请注明原文出处: https://mo2g.com/view/138/ ]
之前写过一篇文章介绍过如何使用阿里云OCS,由于当前Discuz官方只提供memcache的PHP 扩展环境支持,所以这回跟大家分享,如何让Discuz支持memcached扩展,同时把OCS跟Discuz结合起来,提高网站性能.
之前写过一篇文章介绍过如何使用阿里云OCS,由于当前Discuz官方只提供memcache的PHP 扩展环境支持,所以这回跟大家分享,如何让Discuz支持memcached扩展,同时把OCS跟Discuz结合起来,提高网站性能。
相同配置下,ab压力测试对比
开启前:Requests per second: 28.74 [#/sec] (mean)
开启后:Requests per second: 38.72 [#/sec] (mean)

1)使用memcached取代memcache拓展
打开文件 source/class/discuz/discuz_memory.php,修改第27行代码
$this->extension['memcache'] = extension_loaded('memcache');改为
$this->extension['memcache'] = extension_loaded('memcached');保存后

2)更新官方对memcache的操作类
打开文件 source/class/memory/memory_driver_memcache.php,修改类的两个方法init()、getMulti()
public function init($config) {
if(!empty($config['server'])) {
$this->obj = new Memcached('bbs');
if (count($this->obj->getServerList()) == 0) {
$this->obj->setOption(Memcached::OPT_COMPRESSION, false);
$this->obj->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$this->obj->addServer($config['server'], $config['port']);
$this->obj->setSaslAuthData('OCS账号', 'OCS密码');
}
$connect=$this->obj->set('connect', '1');
$this->enable = $connect ? true : false;
}
}
public function getMulti($keys) {
return $this->obj->getMulti($keys);
}3)修改配置文件: config/config_global.php,大概在25行的位置,找到memcache的配置。
$_config['memory']['memcache']['server'] = 'OCS地址'; $_config['memory']['memcache']['port'] = 11211;
保存后如下

到此,OCS就已经默默的为Discuz开启缓存加速了。大家可以自己测试一下加速后的效果。

我来说两句: