Solve the problem that Yii CFileCache cannot obtain the value

*文
Release: 2023-03-18 22:54:02
Original
1682 people have browsed it

How to solve the problem that Yii CFileCache cannot obtain the value? This article mainly introduces the analysis of the reasons why Yii CFileCache cannot obtain the value. It is very good. Friends who need it can refer to it. I hope to be helpful.

I configured it in the configuration file

‘cache'=>array(
‘class'=>'system.caching.CFileCache',
),
Copy after login

Set it in the controller

return array(
array(
‘COutputCache+pro',
‘duration'=>86400,
‘varyByParam'=>array(‘id'),
),
Copy after login

Then open the database'schemaCachingDuration'=>3600,

When I first used it, there was a cache file and I found that it did speed up the access a lot

But over time, after a certain period of time, maybe 10 minutes, I found that under runtime/cache The cache file suddenly disappeared

I don’t know the reason. I tracked it for a long time before discovering this problem

In addition, I also found that there are other folders in the cache directory. 0a d6 63 3a is not named correctly. Do you know what this does?

The reason why the cache file suddenly disappears while waiting online?

The cache file has a large data space in the D drive

, Yii's buffering needs to be configured in main.php.

/****************/
‘cache' => array (
‘class' => ‘system.caching.CFileCache'
)
Copy after login

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);
Copy after login

2. Configure multiple caches

Configuration of main.php

‘cache' => array (
‘class' => ‘system.caching.CFileCache'
),
‘dbcache' => array (
‘class' => ‘system.caching.CDbCache'
)
Copy after login

The controller only needs to be called with the corresponding cacheid

For example: Yii::app ()-&gt ;dbcache

3. Page caching means making the entire page static

main.php configuration is still the same

Controller: OK Use the COutputCache class as a behavior filter in our controller class.

public function filters() {
    return array (
        array (
        ‘COutputCache',
        ‘duration' => 600,
        ‘ varyByParam' => array(‘id')
        )
    );
}
Copy after login

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…
Copy after login

Related recommendations:

Yii2 integrates Xunsou to achieve efficient Chinese word segmentation retrieval

How Yiii filters bad code

##How to use join and joinwith multi-table related queries in Yii2

The above is the detailed content of Solve the problem that Yii CFileCache cannot obtain the value. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template