>  기사  >  php教程  >  延迟更新_缓存优化

延迟更新_缓存优化

WBOY
WBOY원래의
2016-06-07 11:45:251136검색

默认的延迟更新,用的是F快速缓存,有个缺点:所有文件都在一个目录下,对于统计页面非常多的站点,可能不太好。比如一个网站上百万个页面需要统计,那么产生的缓存文件数量将是海量的。。
这里做了一点修改,缓存方式改为cache()方法,支持多级目录缓存。
在配置文件中开启子目录缓存即可。
打开:ThinkPHP/Extends/Model/AdvModel.class.php
将lazyWrite函数替换为下面的。protected function lazyWrite($guid,$step,$lazyTime) {<br>         $cache= Cache::getInstance('',array("temp"=>TEMP_PATH.'lazy'));//缓存文件放在runtime/temp/lazy 目录下,可以自定义。<br>         if(false !== ($value = $cache->get($guid))) { // 存在缓存写入数据<br>             if(time()>$cache->get($guid.'_time')+$lazyTime) {<br>                 // 延时更新时间到了,删除缓存数据 并实际写入数据库<br>                 $cache->rm($guid);<br>                 $cache->rm($guid.'_time');<br>                 return $value+$step;<br>             }else{<br>                 // 追加数据到缓存<br>                 $cache->set($guid,$value+$step);<br>                 return false;<br>             }<br>         }else{ // 没有缓存数据<br>             <br>             $cache->set($guid,$step);<br>             // 计时开始<br>             $cache->set($guid.'_time',time());<br>             return false;<br>         }<br>     }

AD:真正免费,域名+虚机+企业邮箱=0元

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:简单列表页全选删除다음 기사:IP地址定位函数