Cara menggunakan Cache dengan Redis di Laravel

Cara menggunakan Cache dengan Redis di Laravel, Cara menggunakan Redis – Halo semuanya berjumpa lagi dengan kodingin.com : situs belajar pemrograman website gratis. Tutorial kali ini akan membahas mengenai tutorial Cache di Laravel menggunakan Redis.

Perlu di ketahui, Cache merupakan sebuah penyimpananan terhadap data yang bersifat sementara.

Cara menggunakan Cache dengan Redis di Laravel

Di Laravel terdapat fitur cache dimana sebuah data dapat di simpan ke dalam cache guna untuk melakukan interaksi data yang lebih cepat.

Biasanya Cache di Laravel digunakan digunakan untuk penyimpanan data yang berasal dari database DISK, seperti MySQL.

Tempat penyimpanan cache di Laravel biasanya ada 2 pilihan yang digunakan yaitu Redis dan Memcached. Namun pada tutorial kali ini akan menggunakan redis dengan alasan banyak yang menggunakan Redis dan di dukung banyak permintaan mengenai tutorial menggunakan redis di Laravel.

Dengan menggunakan Cache di redis akan mengurangi request ke database MySQL sehingga kecepatan website akan lebih meningkat dan mengurangi beban di database MySQL.

Syarat menggunakan redis cache di Laravel

  • Sudah Terinstall Redis di PC yang digunakan.
  • Terinstall Database MySQL

Yuk langsung saja kita bahas.

Membuat Projek Laravel Baru

Silahkan lakukan instalasi projek Laravel, pada tutorial ini saya menggunakan Laravel 6.

Nama projek sebagai contohnya adalah cacheRedis.

Setelah itu silahkan buat database baru kemudian silahkan lakukan konfigurasi di file .env.

Membuat Skema Tabel Database

Setelah anda menginstall Laravel, maka secara bawaan terdapat file migration yang terdiri atas 3 file sehingga akan menghasilkan 3 tabel pokok.

Silahkan ketikkan :

Silahkan periksa database anda, maka akan terbuat 3 tabel pokok dan 1 tabel migration.

Pada tutorial ini akan menggunakan tabel users sebagai contohnya.

Menginstall Predis

Predis merupakan package yang di rekomendasikan laravel digunakan untuk melakukan interkasi dengan Redis.

Silahkan ketikkan :

Silahkan tunggu beberapa saat, maka di file composer.json akan muncul package yang usai di install yaitu “predis/predis”: “^1.1“.

Konfigurasi Redis di Laravel

Silahkan lakukan konfigurasi redis di file .env dengan variable :

Silahkan sesuaikan dengan akses redis anda.

Selain itu juga silahkan ganti :

Menjadi :

Jika sudah langkah selanjutnya meng clear konfgurasi yang telah kita rubah, silahkan ketikkan perintah berikut :

Memeriksa Koneksi dengan Redis

Jika sudah melakukan konfigurasi dengan benar langkah berikut nya melakukan uji coba, untuk melakukan uji coba dengan menggunakan routing.

Silahkan ubah kode routing home dengan kode :

routes/web.php

Uji Coba Koneksi Redis

Silahkan akses URL root (“/”)Laravel anda:

Silahkan akses endpoint home berkali kali, lihat lah hasilnya. Hasil dari kode di atas yaitu berupa angka yang selalu bertambah.

Jika di lakukan refresh 2 kali maka nilai hasilnya juga 2.

Jika sudah berhasil maka koneksi redis dengan Laravel sudah berhasil.

Sekarang saatnya menggunakan Cache dengan Redis.

Membuat Routing Baru

routes/web.php

Asumsikan kita sudah mempunya controller dengan method index() dan getUser(). 2 routing di atas digunakan melakukan query ke dalam database MySQL dengan Cache dan Melakukan Query ke Database MySQL tanpa menggunakan cache.

Selanjutnya mari kita buat controller dengan nama UserController.

Membuat Controller

Silahkan buat controller dengan menegetikkan perintah di bawah ini :

Buka controller UserController dan ubah kode PHP nya menjadi berikut ini :

app/Http/Controller/UserController.php

Perhatikan kode controller di atas, terdapat 2 method. Dimana method index() digunakan untuk melakukan Query ke dalam database MySQL kemudian menyimpan cache nya ke dalam redis. Dan ketika ada akses terhadap method tersebut tidak akan di lakukan query ke database MySQL namun ke dalam database cache di Redis.

Penjelasan Kode :

  • Line 13, “users_all” digunakan untuk menyimpan nama cache.
  • Line 13, “10 * 60” digunakan untuk menyimpan berapa lama cache di simpan (dalam satuan detik).

Selain itu juga jangan lupa untuk mengimport model dengan nama app/User. Jika di runtut dari atas tidak ada pembuatan model User karena laravel sudah membuat kan model dengan nama User ketika menginstall projek Laravel nya.

Melakukan Uji Coba Cache Redis

Untuk melakukan uji coba dapat menggunakan sebuah package debugger, guna untuk melihat jumlah query yang dilakukan.

Silahkan ketikkan perintah berikut menggunakan terminal :

Jika sudah silahkan isi data dummy pada table users anda. Hal ini dapat di lakukan insert data secara manual menggunakan aplikasi database manajemen MySQL.

Kemudian tambahkan kode berikut ini di app/config.php.

app/config.php

Lalu ketikkan perintah berikut ini terminal :

Oke pastikan semua kode sudah sama.

Jalankan Laravel Build serve :

Kita lakukan uji coba dengan URL :

  • http://127.0.0.1:8000/users_with_cache
  • http://127.0.0.1:8000/users_with_query

Hasilnya :

Menggunakan Cache Redis :

Cara menggunakan Cache dengan Redis di Laravel
Cara menggunakan Cache dengan Redis di Laravel

Tanpa menggunakan Cache Redis :

Cara menggunakan Cache dengan Redis di Laravel
Cara menggunakan Cache dengan Redis di Laravel | Elequent ORM

Perhatikan 2 gambar tersebut, gambar pertama menggunakan cache redis yang mana penyimpanan di dalam redis berlaku ketika sudah di lakukan satu kali query ke MySQL dan selanjutnya di simpan di redis.

Terlihat jumlah query nya ketika menggunakan Redis berisi informsi 0 sedangkan tanpa redis 1.

Baca Juga : Tutorial Design Pattern Repository pada Laravel

Hasil Uji coba menggunakan Redis hanya butuh 8.18 ms, sedangkan tanpa menggunakan Redis memakan waktu 18.23ms.

Bagi anda yang sudah terbiasa dengan Database Redis menggukana Redis CLI. Berikut ini perintah menggunakan terminal untuk menggunakan Redis.

Lalu lihat key yang masuk :

Hasilnya :

Dari hasil Uji coba di atas menunjukkan bahwa redis di butuhkan ketika banyak terdapat query menggunakan Database MySQL guna untuk meningkatkan kecepatan Akses Website dan mengurangi beban load MySQL.

Sekian Cara menggunakan Cache dengan Redis di Laravel. Semoga Bermanfaat.

Leave a Reply