Die meisten Website-Entwickler neigen dazu, das Caching zu ignorieren, ohne sich darüber im Klaren zu sein, dass es ihren Anwendungen schaden kann. Eine Verzögerung von einer Sekunde bei der Zugriffszeit kann bedeuten, dass Sie Kunden oder Nutzer an die Konkurrenz verlieren.
Yii2 unterstützt Caching in einer Vielzahl von Methoden. Unterstützt Fragment-Caching, Daten-Caching, Seiten-Caching und dynamische Inhalte. Cache-Speicher-Komponenten können ausgetauscht werden, ohne dass der Code, der den Cache verwendet, geändert werden muss.
In diesem Artikel werden wir einen Vergleich der Cache-Geschwindigkeiten verschiedener Methoden vornehmen.
- Ohne Cache-Verwendung
- FileCache
- DbCache
- Redis
Schritte, um einen Vergleich der Cache-Geschwindigkeit auf yii2 durchzuführen
- Einrichten einer Tabelle unter Verwendung von 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';
Erstellen Sie eine einfache Tabelle mit den Spalten id und data. Erstellen Sie dann einen Datensatz für die Tabelle.
In diesem Versuch haben wir eine Datenspalte mit zufälligen Zeichen mit 20 Zeichen hinzugefügt. Die Anzahl der Zeilen, die wir erstellen, beträgt 10.000 Zeilen.
- Erstellen Sie ein Modell der Tabelle, zum Beispiel mit dem Namen „Testcache“.
- Erstellen Sie einen Controller zur Anzeige einer Antwort, zum Beispiel unter dem Namen „TestcacheController“
„TestcacheController“ ohne Cache
public function actionIndex() { $data=TestCache::find()->all(); Yii::$app->response->format = yiiwebResponse::FORMAT_JSON; return $data; }
„TestcacheController“ mit Cache
public function actionIndex(){ $data = Yii::$app->cache->getOrSet('testcachedata', function () { return TestCache::find()->all(); }); Yii::$app->response->format = yiiwebResponse::FORMAT_JSON; return $data; }
- Konfigurieren Sie den yii2-Cache in „config/main.php“.
„FileCache“-Konfiguration
'cache' => [ 'class' => 'yiicachingFileCache', ],
Weitere interessante Artikel
„DbCache“-Konfiguration
'cache' = > [ 'class' => 'yiicachingDbCache', ],
Für die Konfiguration „DbCache“ erstellen Sie zuvor eine Tabelle mit dem Namen „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';
Redis-Konfiguration
'cache' => [ 'class' => 'yiiredisCache', ], 'session' => [ 'class' => 'yiiredisSession', ], 'redis' => [ 'class' => 'yiiredisConnection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ],
Zuvor installieren Sie Redis mit
php composer.phar require --prefer-dist yiisoft/yii2-redis:"~2.0.0"
- Response testing. Um die Antwortgeschwindigkeit zu testen, können wir Postman verwenden, um die Antwortgeschwindigkeit zu prüfen und die Ergebnisse der Antwort anzuzeigen.
Testergebnisse der Cache-Nutzung auf Yii2
Die Ergebnisse des obigen Tests sind die Ergebnisse, die wir mit demselben Computer erzielt haben. Die Reaktionsgeschwindigkeit hängt stark von verschiedenen Bedingungen ab, unter anderem von der verwendeten Hardware und dem Betriebssystem.
Anhand dieser Ergebnisse erhalten wir zumindest einen Überblick über die Reaktionsgeschwindigkeit einiger Methoden der Cache-Nutzung.
Viel Glück!…