Maison  >  Article  >  développement back-end  >  Résoudre le problème selon lequel Yii CFileCache ne peut pas obtenir la valeur

Résoudre le problème selon lequel Yii CFileCache ne peut pas obtenir la valeur

*文
*文original
2018-01-02 16:21:301670parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn