This article mainly introduces the analysis of the reasons why Yii CFileCache cannot obtain the value. It is very good and has reference value. Friends who need it can refer to it
I configured it in the configuration file
‘cache'=>array( ‘class'=>'system.caching.CFileCache', ),
Set it in the controller
return array( array( ‘COutputCache+pro', ‘duration'=>86400, ‘varyByParam'=>array(‘id'), ),
Then open the database'schemaCachingDuration'= >3600,
The first time I used it, there was a cache file and I found that it did speed up the access a lot
But as time went by, maybe after a certain period of time, maybe 10 minutes, I I found that the cache files under runtime/cache suddenly disappeared
I don’t know the reason. I tracked it for a long time before discovering this problem
I also found that there are other folders in the cache directory0a I don’t know what the purpose of the d6 63 3a name is.
The reason why the cache file suddenly disappears while waiting online?
The cache file in the D disk data space is very large
1. Yii’s buffering needs to be configured in main.php.
/****************/ ‘cache' => array ( ‘class' => ‘system.caching.CFileCache' )
After the configuration is completed, you only need to configure it in the controller... .
Yii::app ()->cache->set($key,$value,$expire); Yii::app ()->cache->get($key);
2. Configure multiple caches
main.php configuration
‘cache' => array ( ‘class' => ‘system.caching.CFileCache' ), ‘dbcache' => array ( ‘class' => ‘system.caching.CDbCache' )
The controller only needs to be called with the corresponding cacheid
For example: Yii::app ()->dbcache
3. Page caching means making the entire page static
main.php configuration is still the same
Controller: You can use the COutputCache class as one of our controllers A behavioral filter in the class.
public function filters() { return array ( array ( ‘COutputCache', ‘duration' => 600, ‘ varyByParam' => array(‘id') ) ); }
COutputCache is used as a strategy to automatically generate key names when caching data. Here is a list of those that can be used:
varyByRoute: By setting this option to true, the routing part of a specific request will be used as part of a separate identifier to generate cache data. Therefore, you can use a combination of request controller and acion to differentiate cached content.
varyBySession: By setting this option to true, the unique session id will be used to distinguish content in the cache. Each user's session is different, but can be used to serve the cache.
varyByParam: As mentioned before, the parameters in the input GET are used to distinguish the cache content.
varyByExpression: Set a PHP expression for this option. We can use the result of the corresponding expression to distinguish cached content.
Also note that the default cacheid of COutputCache is cache
4. Fragment cache
Fragment cache is used to cache part of a page. We can use fragment caching in view scripts. We do this by using the CController::beginCache() and CController::endCache() methods.
…some HTML content… <?php if($this—>beginCache($key))?> …content to be cached… <?php $this—>endCache(); ?> …other HTML content…
The above is the entire content of this article. I hope it will be helpful to everyone’s study. For more related content, please pay attention to the PHP Chinese website!
Related recommendations:
About yii using bootstrap paging style
The above is the detailed content of Analysis of the reasons why Yii CFileCache cannot obtain the value. For more information, please follow other related articles on the PHP Chinese website!