mirror of
https://github.com/yiisoft/yii.git
synced 2026-03-12 02:56:55 +01:00
82 lines
4.2 KiB
Plaintext
82 lines
4.2 KiB
Plaintext
La mise en cache
|
|
================
|
|
|
|
La mise en cache est un moyen pas cher et efficace pour améliorer les performances d'une application
|
|
Web. En stockant les données relativement statiques dans le cache et en le signifiant à partir du
|
|
cache à la demande, nous économisons le temps nécessaire pour générer les données.
|
|
|
|
Utilisation du cache dans Yii concerne principalement la configuration et l'accès à
|
|
un composant de l'application cache. La configuration de l'application suivant spécifie
|
|
un composant de cache qui utilise memcache avec deux serveurs de cache.
|
|
|
|
~~~
|
|
[php]
|
|
array(
|
|
......
|
|
'components'=>array(
|
|
......
|
|
'cache'=>array(
|
|
'class'=>'system.caching.CMemCache',
|
|
'servers'=>array(
|
|
array('host'=>'serveur1', 'port'=>11211, 'weight'=>60),
|
|
array('host'=>'serveur2', 'port'=>11211, 'weight'=>40),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
~~~
|
|
|
|
Lorsque l'application est en cours d'exécution, le composant de cache peut être consulté via
|
|
`Yii::app()->cache`.
|
|
|
|
Yii fournit des composants de cache différentes qui peuvent stocker des données mises en cache
|
|
dans différents médias. Par exemple, le composant [CMemCache] encapsule l'extension
|
|
PHP memcache et utilise la mémoire comme support de mémoire cache, le composant [CApcCache]
|
|
encapsule l'extension PHP APC et le composant [CDbCache] stocke les données en mémoire cache
|
|
dans la base de données de composants. Ce qui suit est un résumé des éléments de cache disponibles :
|
|
|
|
- [CMemCache]: PHP utilise [l'extention memcache](http://www.php.net/manual/en/book.memcache.php).
|
|
|
|
- [CApcCache]: PHP utilise [l'extension APC](http://www.php.net/manual/en/book.apc.php).
|
|
|
|
- [CXCache]: PHP utilise [l'extension XCache](http://xcache.lighttpd.net/).
|
|
|
|
- [CEAcceleratorCache]: PHP utilise [l'extension EAccelerator](http://eaccelerator.net/).
|
|
|
|
- [CDbCache]: utilise une table de base de données pour stocker les données mises en cache.
|
|
Par défaut, il va créer et utiliser une base de données SQLite3 sous le répertoire d'exécution.
|
|
Vous pouvez spécifier explicitement une base de données pour qu'elle utilise en définissant sa
|
|
propriété [connectionID|CDbCache::connectionID].
|
|
|
|
- [CZendDataCache]: utilise [Zend Cache de Données](http://files.zend.com/help/Zend-Server-Community-Edition/data_cache_component.htm)
|
|
comme support de mise en cache sous-jacent.
|
|
|
|
- [CFileCache]: utilise des fichiers pour stocker des données en mémoire cache.
|
|
Ceci est particulièrement adaptée pour mettre en cache gros morceau de données (telles que les pages).
|
|
|
|
- [CDummyCache]: présente cache factice qui ne fait pas la mise en cache du tout. Le but
|
|
de ce composant est de simplifier le code qui a besoin de vérifier la disponibilité de cache.
|
|
Par exemple, au cours du développement ou si le serveur ne prend pas en charge la mémoire cache réelle,
|
|
nous pouvons utiliser ce composant cache. Quand un support mémoire cache réelle est activée, on peut passer
|
|
d'utiliser le composant de cache correspondant. Dans les deux cas, on peut utiliser le même code
|
|
`Yii::app()->cache->get($key)` pour tenter la récupération d'une partie des données sans se soucier
|
|
de ce que `Yii::app()->cache` peut-être `null`.
|
|
|
|
> Acstuce : Parce que tous ces composants cache s'étendent de la même classe de base [CCache],
|
|
on peut passer d'utiliser un autre type de cache sans modifier
|
|
le code qui utilise le cache.
|
|
|
|
La mise en cache peut être utilisé à différents niveaux. Au niveau le plus bas, nous utilisons
|
|
cache pour stocker un seul morceau de données, comme une variable, et nous appelons cela
|
|
*la mise en cache des données*. Au niveau suivant, on stocke dans la mémoire cache d'un fragment
|
|
de page qui est généré par une partie d'un script de vue. Et au plus haut niveau, nous
|
|
enregistrons une page entière dans le cache et le servir de la mémoire cache en fonction des besoins.
|
|
|
|
Dans les prochains paragraphes, nous élaborons comment utiliser le cache à ces niveaux.
|
|
|
|
> Remarque : Par définition, le cache est un support de stockage volatile. Il ne garantit pas
|
|
l'existence des données mises en cache même si elle n'expire pas.
|
|
Par conséquent, ne pas utiliser le cache comme un stockage persistant
|
|
(Par exemple : ne pas utiliser le cache pour stocker les données de session).
|
|
|
|
<div class="revision">$Id$</div> |