全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
楼主: qwe123
打印 上一主题 下一主题

昨天终于给wordpress用上memcached了,速度大增啊

[复制链接]
41#
发表于 2009-9-20 13:07:45 | 只看该作者
原帖由 qwe123 于 2009-9-20 12:46 发表
另外我还启用了gzip压缩,EA加速和对一些图片,css,js使用过期


gzip压缩还可以省流量,太爽了
42#
 楼主| 发表于 2009-9-20 13:08:56 | 只看该作者

回复 39# 的帖子

才用了20多M
43#
发表于 2009-9-20 13:11:18 | 只看该作者

回复 42# 的帖子

过几天估计会满掉。
44#
发表于 2009-9-20 13:21:34 | 只看该作者
APC和ZEND不兼容??
我的网站程序 wordpress + discuz!论坛
想用nginx
探讨一下
nginx下 + eA + memcached + ZEND 是否可行?
memcached 和那个一键安装包的memcache 有区别?

[ 本帖最后由 tumour 于 2009-9-20 13:27 编辑 ]
45#
发表于 2009-9-20 13:28:50 | 只看该作者
或者放弃discuz!换其他不需要zend的论坛程序?有推荐的嘛?
46#
 楼主| 发表于 2009-9-20 13:30:46 | 只看该作者
discuz好像不能使用memcached ,只能装EA和zend
47#
发表于 2009-9-20 13:37:56 | 只看该作者
原帖由 tumour 于 2009-9-20 13:21 发表
APC和ZEND不兼容??
我的网站程序 wordpress + discuz!论坛
想用nginx
探讨一下
nginx下 + eA + memcached + ZEND 是否可行?
memcached 和那个一键安装包的memcache 有区别? ...


APC和ZEND好像是不兼容,我用的eA加速跟Zend。

nginx下 + eA + memcached + ZEND 是否可行? 我的就是这个生产环境。
48#
发表于 2009-9-20 13:41:06 | 只看该作者

回复 45# 的帖子

DZ什么时候开始加密了?你不用那个UC就行了。
49#
发表于 2009-9-20 13:46:09 | 只看该作者
原帖由 qwe123 于 2009-9-20 13:30 发表
discuz好像不能使用memcached ,只能装EA和zend

Discuz可以用mecached,只是要改代码,没有相关的discuz插件。

Discuz!使用Memcache
1.在config.inc.php中增加
$memcachehost = '127.0.0.1';
$memcacheport = 11211;
$memcachelife = 60;

2.在include/common.inc.php中
$mem = new Memcache;
$mem->connect($memcachehost, $memcacheport);

3.修改include/db_mysql.class.php中的fetch_array、query这两个方法,并添加query_mysql方法,代码如下:
function fetch_array($query, $result_type = MYSQL_ASSOC) {
return is_resource($query) ? mysql_fetch_array($query, $result_type) : $query[0];
}

function query_memcache($sql, $type = '') {
global $mem,$memcachelife;

$key = md5($sql);
if(!($query = $mem->get($key))) {
$query = $this->query($sql, $type);
while($item  = $this->fetch_array($query)) {
$res[] = $item;
}
$query = $res;
$mem->set($key, $query , 0, $memcachelife);
}
return $query;
}

function query($sql, $type = '') {
global $debug, $discuz_starttime, $sqldebug, $sqlspenttimes;

$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
'mysql_unbuffered_query' : 'mysql_query';
if(!($query = $func($sql, $this->link)) && $type != 'SILENT') {
$this->halt('MySQL Query Error', $sql);
}

if(substr($sql, 0, 6) == 'SELECT') {
echo '<font color="red">Cache SQL</font>:<font color="green">'.$sql.'</font><br /><br />';
} else {
echo '<font color="red">Flash SQL</font>:<font color="green">'.$sql.'</font><br /><br />';
}

$this->querynum++;
return $query;
}

4.将需要使用Memcache缓存的SQL查询的代码由
$db->query(

修改为
$db->query_memcache(

注意并将
while($post = $db->fetch_array($query)) {

修改为
foreach($query as $post) {

没有while的$db->fetch_array可以不用修改。

下面代码有用得着的就拿去:
preg_replace("/while\([$](\w+)\s*\=\s*[$]db->fetch_array\([$]query\)\)/is", "foreach(\$query as \$\\1)", $file);


测试,还是挺麻烦的。

评分

参与人数 1威望 +10 收起 理由
tumour + 10 精品文章

查看全部评分

50#
发表于 2009-9-20 13:50:21 | 只看该作者
OK.安装成功了..
http://imcat.in/

给了32M内存..先测试下..感觉很硬盘缓存差不多吧.可能要看数据缓存的多少吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-9-26 07:14 , Processed in 0.066451 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表