[Yii2] Perbandingan Kecepatan Cache

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

  1. 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';

Buat tabel sederhana dengan kolom id dan data. Setelah itu buat record untuk tabel tersebut.

Dalam ujicoba kali ini, kita menambahkan kolom data dengan random karakter dengan 20 buah karakter. Jumlah baris yang kita buat sebanyak 10.000 baris.

  1. Buat model dari tabel tersebut, misal dengan nama “Testcache”.
  2. 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;
    }
  1. Konfigurasi cache Yii2 pada “config/main.php”.

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"
  1. Pengujian respon. Untuk menguji kecepatan respon, kita bisa menggunakan Postman untuk melihat kecepatan respon dan menampilkan hasil dari respon.
yii2 cache 01

Hasil ujicoba penggunaan cache pada Yii2

yii2 cache 02

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…..

Artikel Terbaru