Sebagian besar pengembang website cenderung mengabaikan caching tanpa menyadari bahwa hal itu dapat merugikan aplikasi mereka. Penundaan satu detik dalam waktu akses dapat berarti Anda kehilangan pelanggan atau pengguna karena pesaing.
Yii2 mendukung caching dalam berbagai metode. Mendukung caching fragmen, caching data, caching halaman dan konten dinamis. Komponen penyimpanan cache dapat ditukar tanpa harus mengubah kode yang menggunakan cache.
Dalam artikel ini, kita akan membuat perbandingan kecepatan cache dalam beberapa metode.
- Tanpa menggunakan cache
- FileCache
- DbCache
- Redis
Langkah-langkah membuat perbandingan kecepatan cache pada yii2
Menyiapkan tabel dengan menggunakan 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';
Dalam ujicoba kali ini, kita menambahkan kolom data dengan random karakter dengan 20 buah karakter. Jumlah baris yang kita buat sebanyak 10.000 baris.
- Buat model dari tabel tersebut, misal dengan nama “Testcache”.
- Buat Controller untuk menampilkan respon, misal dengan nama “TestcacheController”
“TestcacheController” tanpa cache
public function actionIndex() { $data=TestCache::find()->all(); Yii::$app->response->format = yiiwebResponse::FORMAT_JSON; return $data; }
“TestcacheController” denagan cache
public function actionIndex(){ $data = Yii::$app->cache->getOrSet('testcachedata', function () { return TestCache::find()->all(); }); Yii::$app->response->format = yiiwebResponse::FORMAT_JSON; return $data; }
Konfigurasi cache Yii2 pada “config/main.php”.
Artikel Menarik Lainnya
Konfigurasi “FileCache”
'cache' => [ 'class' => 'yiicachingFileCache', ],
Konfigurasi “DbCache”
'cache' => [ 'class' => 'yiicachingDbCache', ],
Untuk konfigurasi “DbCache”, sebelumnya buat tabel dengan nama “cache”
CREATE TABLE `cache` ( `id` CHAR(128) COLLATE utf8mb4_general_ci NOT NULL, `expire` INTEGER(11) DEFAULT NULL, `data` BLOB, PRIMARY KEY USING BTREE (`id`) ) ENGINE=InnoDB ROW_FORMAT=DYNAMIC CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
Konfigurasi Redis
'cache' => [ 'class' => 'yiiredisCache', ], 'session' => [ 'class' => 'yiiredisSession', ], 'redis' => [ 'class' => 'yiiredisConnection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ],
Sebelumnya, install redis dengan
php composer.phar require --prefer-dist yiisoft/yii2-redis:"~2.0.0"
- Pengujian respon. Untuk menguji kecepatan respon, kita bisa menggunakan Postman untuk melihat kecepatan respon dan menampilkan hasil dari respon.
Hasil ujicoba penggunaan cache pada Yii2
Hasil ujicoba tersebut diatas adalah hasil yang kami peroleh dengan menggunakan komputer yang sama. Kecepatan respon yang diperoleh sangat dipengaruhi oleh berbagai macam kondisi, salah satunya adalah perangkat keras yang digunakan dan juga operating system.
Dari hasil tersebut, setidaknya kita mendapatkan gambaran kecepatan respon dari beberapa metode penggunaan cache.
Semoga bermanfaat…..