论坛风格切换
  • 3005阅读
  • 0回复

[定制开发功能]给版块的主题相关功能套用Memcached,减少数据库查询 [复制链接]

上一主题 下一主题
离线rickyleo
 

发帖
315
金币
0
威望
99
只看楼主 倒序阅读 使用道具 楼主  发表于: 2011-12-13
汉网现在是windows 16G 内存的服务器,因为开启了板块的主题相关功能导致CPU经常飙到100%,后来看到是版块主题相关功能查的太频繁了,而且还强制使用idex_postdate索引,现在将这部分查询到的数据缓存到Memcached里边,10分钟再查询一次。代码修改如下:
打开read.php文件,找到:
  1. function threadrelated ($relatedcon) {
  2. .......
  3. }
上方添加代码:
  1. //主题相关数据缓存到Memcached by rickyleo
  2. function threadrelatedOptimize ($relatedcon){
  3.     global $fid;
  4.     $relatedb = array();
  5.     
  6.     if (Perf::checkMemcache()) {
  7.         $_cacheService = Perf::getCacheService();
  8.         $relatedb = $_cacheService->get('relatedb_'.$fid);
  9.     }
  10.     if(!Perf::checkMemcache() || !$relatedb){
  11.         $relatedb = threadrelated($relatedcon);
  12.         Perf::checkMemcache() && $_cacheService->set('relatedb_'.$fid, $relatedb, 600);
  13.     }
  14.     
  15.     return $relatedb;
  16. }
  17. //end
找到:
  1. $relatedb = threadrelated($forumset['relatedcon']);
替换成:
  1. $relatedb = threadrelatedOptimize($forumset['relatedcon']);//rickyleo






快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
提到某人:
选择好友
上一个 下一个