[Yii2] Perbandingan Kecepatan Cache

15 Oktober 2021

Home » Blog » Teknologi » [Yii2] Perbandingan Kecepatan Cache

Sebagian besar pengembang website cenderung mengabaikan caching tanpa menyadari bahwa hal itu dapat merugikan mereka. Penundaan satu detik dalam waktu akses dapat berarti Anda kehilangan pelanggan atau pengguna karena pesaing.

mendukung caching dalam berbagai metode. Mendukung caching fragmen, caching data, caching halaman dan konten dinamis. Komponen penyimpanan dapat ditukar tanpa harus mengubah kode yang menggunakan .

Dalam artikel ini, kita akan membuat perbandingan kecepatan 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 Terkait

File Sharing antara Hyper-V Host dan Guest

Berbagi File antara Host dan Guest pada Hyper-V dapat anda lakukan dengan beberapa cara berikut ini. Hyper-V adalah virtualisasi perangkat keras Microsoft yang memungkinkan Anda membuat dan menjalankan versi perangkat lunak komputer, yang disebut mesin virtual. Setiap...