Maison > Article > développement back-end > Résoudre le problème selon lequel Yii CFileCache ne peut pas obtenir la valeur
Comment résoudre le problème selon lequel Yii CFileCache ne peut pas obtenir la valeur ? Cet article présente principalement l'analyse des raisons pour lesquelles Yii CFileCache ne peut pas obtenir la valeur. C'est très bien. Les amis qui en ont besoin peuvent s'y référer. J'espère que cela aide tout le monde.
J'ai configuré
‘cache'=>array( ‘class'=>'system.caching.CFileCache', ),
dans le fichier de configuration, je l'ai défini dans le contrôleur
return array( array( ‘COutputCache+pro', ‘duration'=>86400, ‘varyByParam'=>array(‘id'), ),
puis j'ai ouvert la base de données ‘schemaCachingDuration'=>3600,
Quand je l'ai utilisé pour la première fois, il y avait un fichier cache et j'ai trouvé que cela accélérait beaucoup l'accès
Mais au fil du temps, après un certain temps, peut-être 10 minutes, j'ai découvert que le le fichier cache sous runtime/cache a soudainement disparu
Je ne sais pas la raison pour laquelle j'ai trouvé ce problème après l'avoir suivi pendant une longue période
J'ai également découvert qu'il y avait des dossiers dans le répertoire cache . Ils s'appellent 0a d6 63 3a. Je ne sais pas ce que cela fait
La raison pour laquelle les fichiers cache ont soudainement disparu pendant l'attente en ligne ?
Les fichiers cache dans les données du lecteur D. les espaces sont très grands
1. La mise en mémoire tampon de yii doit être dans le fichier principal Configurer dans .php,
/****************/ ‘cache' => array ( ‘class' => ‘system.caching.CFileCache' )
Une fois la configuration terminée, il vous suffit besoin de le configurer dans le contrôleur...
Yii::app ()->cache->set($key,$value,$expire); Yii::app ()->cache->get($key);
2. Configurer plusieurs caches
configuration main.php
‘cache' => array ( ‘class' => ‘system.caching.CFileCache' ), ‘dbcache' => array ( ‘class' => ‘system.caching.CDbCache' )
Le le contrôleur doit seulement être appelé avec l'identifiant de cache correspondant
Par exemple : Yii::app ()->dbcache
3. La mise en cache de la page signifie rendre la page entière statique
La configuration de main.php est toujours la même
Contrôleur : Vous pouvez utiliser la classe COutputCache comme filtre de comportement dans notre périphérique de classe contrôleur.
public function filters() { return array ( array ( ‘COutputCache', ‘duration' => 600, ‘ varyByParam' => array(‘id') ) ); }
COutputCache est utilisé comme stratégie pour générer automatiquement des noms de clés lors de la mise en cache des données. Voici une liste de ceux qui peuvent être utilisés :
varyByRoute : En définissant cette option sur true, la partie routage d'une requête spécifique sera utilisée dans le cadre d'un identifiant distinct pour générer des données de cache. Par conséquent, vous pouvez utiliser une combinaison de contrôleur de requête et d'action pour différencier le contenu mis en cache.
varyBySession : En définissant cette option sur true, un identifiant de session unique sera utilisé pour différencier le contenu dans le cache. La session de chaque utilisateur est différente, mais peut être utilisée pour servir le cache.
varyByParam : Comme mentionné précédemment, les paramètres de l'entrée GET sont utilisés pour distinguer le contenu du cache.
varyByExpression : Définissez une expression PHP pour cette option. Nous pouvons utiliser le résultat de l'expression correspondante pour distinguer le contenu mis en cache.
Notez également que l'ID de cache par défaut de COutputCache est le cache
4. Cache de fragments
Le cache de fragments est utilisé pour mettre en cache une partie d'une page. Nous pouvons utiliser la mise en cache de fragments dans les scripts de vue. Nous faisons cela en utilisant les méthodes CController::beginCache() et CController::endCache().
…some HTML content… <?php if($this—>beginCache($key))?> …content to be cached… <?php $this—>endCache(); ?> …other HTML content…
Recommandations associées :
Yii2 intègre Xunsou pour obtenir une récupération efficace de la segmentation des mots chinois
Comment Yii filtre les mauvais codes
Comment utiliser join et joinwith des requêtes liées à plusieurs tables dans Yii2
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!