La plupart des développeurs de sites web ont tendance à ignorer la mise en cache sans se rendre compte qu’elle peut nuire à leurs applications. Un retard d’une seconde dans le temps d’accès peut signifier que vous perdez des clients ou des utilisateurs au profit de vos concurrents.
Yii2 prend en charge la mise en cache dans une variété de méthodes. Il prend en charge la mise en cache des fragments, des données, des pages et du contenu dynamique. Les composants de stockage du cache peuvent être échangés sans avoir à modifier le code qui utilise le cache.
Dans cet article, nous allons comparer les vitesses de cache de plusieurs méthodes.
- Sans utiliser de cache
- FileCache
- DbCache
- Redis
Etapes pour faire une comparaison de la vitesse du cache sur yii2
- Mise en place d’une table en utilisant MySQL
CREATE TABLE 'test_cache' ( 'id' INTEGER(11) NOT NULL AUTO_INCREMENT, 'data' VARCHAR(20) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY USING BTREE ('id') ) ENGINE=InnoDB AUTO_INCREMENT=1 ROW_FORMAT=DYNAMIC CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
Créez un tableau simple avec des colonnes d’identification et de données. Créez ensuite un enregistrement pour la table.
Dans cet essai, nous avons ajouté une colonne de données avec caractères aléatoires de 20 caractères. Le nombre de lignes créées est de 10 000.
- Créer un modèle de la table, par exemple avec le nom « Testcache ».
- Créer un contrôleur pour afficher une réponse, par exemple sous le nom « TestcacheController »
« TestcacheController » sans cache
public function actionIndex() { $data=TestCache::find()->all(); Yii::$app->response->format = yiiwebResponse::FORMAT_JSON; return $data; }
« TestcacheController » avec cache .
public function actionIndex(){ $data = Yii::$app->cache->getOrSet('testcachedata', function () { return TestCache::find()->all(); }); Yii::$app->response->format = yiiwebResponse::FORMAT_JSON; return $data; }
- Configurer le cache de yii2 dans « config/main.php.
Autres articles intéressants
Configuration « FileCache »
'cache' => [ 'class' => 'yiicachingFileCache', ],
Configuration « DbCache »
'cache' = > [ 'class' => 'yiicachingDbCache', ],
Pour la configuration « DbCache », créer préalablement une table avec le nom « cache »
CREATE TABLE 'cache' ( 'id' CHAR(128) COLLATE utf8mb4_general_ci NOT NULL, 'expire' INTEGER(11) DEFAULT NULL, BLOB 'data', PRIMARY KEY USING BTREE ('id') ) ENGINE=InnoDB ROW_FORMAT=DYNAMIC CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
Configuration de Redis
'cache' => [ 'class' => 'yiiredisCache', ], 'session' => [ 'class' => 'yiiredisSession', ], 'redis' => [ 'class' => 'yiiredisConnection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ],
Auparavant, installez Redis avec
php composer.phar require --prefer-dist yiisoft/yii2-redis:"~2.0.0"
- Test de réponse. Pour tester la vitesse de réponse, nous pouvons utiliser Postman pour regarder la vitesse de réponse et afficher les résultats de la réponse.
Résultats des tests d’utilisation du cache sur Yii2
Les résultats du test ci-dessus sont les résultats que nous avons obtenus en utilisant le même ordinateur. La vitesse de réponse obtenue est fortement influencée par diverses conditions, dont le matériel utilisé et le système d’exploitation.
Ces résultats nous donnent au moins un aperçu de la vitesse de réponse de certaines méthodes d’utilisation du cache.
Bonne chance…